Skip to main content

Full text of "Commodore World"

See other formats


Commodore 


W 


O 


R 


L 


D 


¡Hazte  socio  del  Club  de  Soft  de  España! 

Tendrás  multitud  de  ventajas... 

—  Recibirás  puntual  información  de  las  novedades 
de  soft  que  haya  en  el  mercado. 

Te  enviaremos  un  catálogo  bimensual  que  incluye 
más  de  200  programas  para  Commodore  64  y  Spec- 


—  Podrás  adquirir  programas  con  un  30%  de  descuen¬ 
to,  por  ser  miembro  del  CLUB  DE  SOFT  DE  ESPA¬ 
ÑA. 

—  Obtendrás  descuentos  de  hasta  un  20%  sobre 
hardware. 


¿COMO  PUEDES  HACERTE  SOCIO  DEL  CLUB  DE 
SOFT  DE  ESPAÑA? 


—  Sólo  tendrás  que  abonar  1.000  Ptas.  como  cuota  UNICA  de  ins¬ 
cripción. 


—  Como  regalo  de  bienvenida  a  nuestro  CLUB  de  SOFT  de  ESPAÑA 
podrás  elegir  entre  dos  programas: 


AJEDREZ 
SOLO  FLIGHT 


STARSHIP  ENTERPRISE 
SLIPPERY  SID 


para  CBM-64  para  SPRECTRUM 

Te  enviaremos  el  programa  elegido  completamente  GRATIS,  junto 
con  la  confirmación  de  tu  pertenencia  al  CLUB  de  SOFT  de  ESPAÑA 


.  qO^ 


óe 


CUPON  DE  INSCRIPCION 
AL  CLUB  DE  SOFT  DE  ESPAÑA 

Eraso,  12  -  Tel.  24610  94  -  28028-MADRID 


DIFUSION  POR  AMISTAD 

Habla  a  tus  amigos  de  las  enormes  ventaja: 


mm*KK.m***#t*  — 
CC|3ES3HHj5j5HE535552  Y"* 


K 

w 

¡52 

0 

[J5J| 

Commodore  World 
está  publicado  por  SIMSA 
y  la  colaboración 
de  todos  nuestros  lectores 
EQUIPO 

Manuel  AMADO;  Nieves  CHESA; 
José  Luis  ERRAZQUIN; 

M.*  Jesús  GARCIA; 

Miguel  A.  HERMOSELL; 
Alvaro  IBAÑEZ;  María  LOPEZ; 
Juan  MARQUEZ;  Juan  MARTINEZ; 
Pere  MASATS;  Victoria  MORALES; 
Rafael  PARDO;  Diego  ROMERO; 
Albert  SANGLAS;  Jordi  SASTRE; 
Valerte  SHANKS;  Francisco  ZABALA... 
...Y  NUESTROS  LECTORES 
SIMSA 

Coordinador  María  López 
c/Barquillo,  21-3®.  Izda.  -  28004 
Madrid.  Teléí.:  (91)  231  23  88/95 
Delegación  en  Barcelona: 

Sant  Gervasi  de  Cassoles,  39  despacho  4. 
08022  Barcelona 
Tels.:  (93)  212  73  45/212  88  48 

Colabora  MEC-COMMODORE 
con  Club  Commodore 
Coordinador  Pere  Masats 
Taquígrafo  Serra,  7-5" 

08029  Barcelona 
Tels.:  (93)  250  51  03/02 


PROHIBIDA  LA 
REPRODUCCION  TOTAL  O 
PARCIAL  DE  LOS 
ORIGINALES  DE  ESTA 
REVISTA  SIN  AUTORIZACION 
HECHA  POR  ESCRITO. 

NO  NOS  HACEMOS 
RESPONSABLES  DE  LAS 
OPINIONES  EMITIDAS  POR 
NUESTROS  COLABORADORES. 


Imprime: 
IBERDOS,  S.  A. 
Germán  Pérez  Carrasco,  24. 
28027  Madrid 

Depósito  Legal:  M-2944-1984 


SUMARIO 


CONTENIDO _  PAG 

SUPERINTERESANT1S1MO .  4 

ARTE  Y  CIENCIA  DE  LA  PROGRAMACION .  9 

LLEVA  TU  PROPIA  CONTABILIDAD.... . lj 

VIAJE  AL  CENTRO  DE  TU  COMMODORE .  22 

MULTIPLICACION  LARGA  EN  BASIC .  29 

CLUB  COMMODORE 

Formatación  numérica.................................................................................  32 

Commodore  en  la  cima  de  Europa .  34 


COMPARTIENDO  EXPERIENCIAS  ENTRE  AMIGOS 


Programa  quinielas... 


CARTA  BLANCA  Y  SEAMOS  PREGUNTONES .  56 

COMENTARIOS  COMMODORE 

Laboratorios  de  informática  en  la  enseñanza .  53 

Albareda:  Organo  de  verdad... 


Idealogic:  Software  preescolar  y  primer  ciclo  de  EGB ... 

Ferret  Movet:  Soft  y  Hard . 

Vietronic:  El  64  director  de  orquesta . 


LAS  AVENTURAS  DE  RAMY  Y  ROMO  .. 
DIRECTORIO... 


CURSILLO  DE  LENGUAJE  MAQUINA  (Vil) .  66 


MARKETCLUB... 


PROXIMO  NUMERO 


GRAN  PROGRAMA  GEOGRAFICO 


RUTINAS  BASIC  (111  -  CONTROL  DEL  CURSOR 


AYUDA  PARA  TECLEAR  LOS  PROGRAMAS 


CLUB  COMMODORE 


-V  TODAS  VUESTRAS  COLABORACIONES 


H  >'  V  I1  Commodore  World  es  miembro  de  CW  Communications/lnc.,  el  grupo 

i/  C2>  \  ft — — V.  editorial  más  grande  y  de  mayor  prestigio  en  el  mundo  en  lo  que  se  refiere  al 

I  f\  /I  ]  (  ámbito  informático.  Dicho  grupo  tiene  a  su  cargo  la  edición  de  52  publica- 

rOO  W J  J  ciones  relacionadas  con  los  ordenadores  en  19  países.  El  grupo  editorial  está 

II  x ^  ^  11  integrado  por: 

ALEMANIA:  Computcrwoche,  Micro  Computerwelt.  PC  Welt.  Software 
Markt.  CW  Edilion/Scminar,  Computer  Business,  Run  (Commodore). 
ARABIA  SAUDI:  Saudi  Computerworld.  ARGENTINA:  Computcrworld/Argentina.  AUSTRALIA: 
Australasian  Computerworld.  Micro  Computer  Maga/ine,  PC  World.  BRASIL:  DalaNews,  Micro- 
Mundo.  DINAMARCA:  Computerworld/Danmark.  Micro  Verden.  ESPAÑA:  Compulerworld/Es- 
paña.  MicroSistcmas,  Commodore  World.  ESTADOS  UNIDOS:  Computerworld.  Hot  C0C0,  InCidcr. 
IníoWorld.  Microcomputing,  PC  World,  80-Micro,  Mac  World  Micro  Market  Word.  PC  Jr.  World 
Run  (Commodore).  FINLANDIA:  Mikro.  FRANCIA:  Le  Monde  Informatiquc.  HOLANDA:  Compu¬ 
terworld  Bcnelux,  Micro/lnfo.  ITALIA:  Computerworld  Italia.  JAPON:  Computerworld  Japan.  Perso 
Comworld,  PC  World.  MEXICO:  Computerworld/Mcxico,  Compumundo.  NORUEGA:  Computer¬ 
world  Norge,  Mikro  Data.  REINO  UNIDO  DE  GRAN  BRETAÑA:  Computer  Managemcnl.  Computer 
Business  Europe.  REPUBLICA  POPULAR  DE  CHINA:  China  Computerworld.  SINGAPUR:  Asian 
Computerworld.  SUECIA:  CompulerSwedcn.  MikroDatorn.  Min  Hemadator. 


Commodore  World  Noviembre  1984/3 


MAS  SOBRE  EL  EXTRAORDINARIO 


ACLARACIONES 

Parece  existir  varías  dudas  sobre  el 
Número  Extraordinario  de  Programas  que 
publicaremos  cara  a  las  próximas  Restas  de 
Navidad  y  que,  como  dijimos  ya,  esperamos 
presentar  en  SIMO. 

TODOS  LOS  LECTORES  pueden 
reservar  su  copia,  sean  o  no  suscriptores 
— los  dos  llevan  un  descuento  sobre  el 
P.V.P.  de  1.250  ptas.,  aunque  este  des¬ 
cuento  es  diferente  para  los  suscriptores  y 
los  lectores  no  suscriptores. 

El  suscriptor  con  un  descuento  muy  espe¬ 
cial  del  50%  que  es  el  precio  de  coste.  El 
lector  no  suscriptor  que  nos  envíe  el  boletín 
de  reserva,  tiene  un  25%  de  descuento  por 
lo  que  le  queda  el  ejemplar  en  935  ptas. 

Hay  algunos  suscriptores  que  no  saben 
su  número  de  suscriptor.  Este  número  viene 
siempre  en  la  etiqueta  del  sobre. 

De  todas  formas,  si  algún  suscriptor  no 
tiene  su  número  a  mano,  puede  enviar  el 
boletín  de  reserva,  indicando  que  no  lo 
recuerda. 

Transcribo  a  continuación  la  carta  de  un 
lector  que  ya  puede  ser  reflejo  de  dudas  de 
otros  lectores: 

“Aprovecho  la  ocasión  para  sugerirles, 
aún  y  cuando  dicho  número  extraordinario 
ya  esté  confeccionado,  de  que  el  contenido 
del  mismo,  los  75  ó  100  programas  que 
Uds.  anuncian,  sean  al  50%  de  utilización 
para  el  Vic-20  y  C-64  respectivamente. 

Dichos  programas,  ¿serán  una  recopila¬ 
ción  de  los  ya  proporcionados  en  números 
anteriores?,  ya  que  en  ese  supuesto  no  ten¬ 
drían  interés  alguno  para  mí.  Asimismo, 
supongo  que  los  programas  de  referencia, 
estarán  ya  probados,  ¿o  tal  vez  no?  En  caso 
de  que  no  funcionen,  ¿deberemos  esperar  la 
salida  de  otro  nuevo  extraordinario,  en  el 
que  indique  ios  errores  que  pudieran  haber 
en  ese  primer  extraordinario? 

Con  el  deseo  de  no  haberles  ofendido,  ya 
que  éste  no  es  mi  propósito,  sino  todo  lo 
contrario,  ya  que  mi  intención  no  ha  sido 
otra  que  la  de  aclarar  unos  puntos  de  los 
cuales  nada  indicaban  en  la  nota  de  solici¬ 
tud  que  incluíais  en  el  número  8  de  la 
revista. 

Un  cordial  saludo. 

Luis  Mercade 

c/  Joan  Gúell  82-84,  3",  2» 

Barcelona  08028 
N"  de  suscriptor  841 

4/Commodore  World  Noviembre  1984 - 


Nada  hombre,  no  nos  ofendes.  Al  contra¬ 
río,  de  hecho  nos  es  muy  útil  para  aclarar 
estos  puntos  en  beneficio  de  todos  los 
demás: 

1.  — Este  libro  se  pensó  desde  el  primer 
momento  en  que  fuera  de  similar  utilidad 
para  los  usuarios  del  VIC,  como  del  64  y 
así  está  confeccionado,  guardando  un  equi¬ 
librio  entre  los  dos. 

2.  —  Todos  los  programas  son  inéditos. 
Indudablemente,  una  recopilación  de  los 
programas  publicados  en  Commodore 
World  a  lo  largo  del  año  tendría  un  interés 
más  que  limitado. 

3.  — Los  programas  que  se  publiquen 
provienen  al  igual  que  en  Commodore 
World,  de  tres  fuentes.  Unos  son  nuestros, 
otros  adaptados  de  nuestras  revistas  her¬ 
manas  de  todo  el  mundo  y  otros  de  diversos 
colaboradores.  Todos  ellos  están  probados 
y  comprobados  por  Diego  y  Alvaro. 

4.  — Por  supuesto  que  en  el  caso  de  que  se 
produjera  algún  error  o  errata  no  es  nece¬ 
sario  esperar  seis  meses  a  otro  extraordina¬ 
rio,  estos  posibles  errores  se  rectificarían 
en  el  número  de  enero.  Igualmente,  cual¬ 
quier  comentario,  rectificación,  ampliación 
o  mejora  de  los  mismos,  que  nos  enviéis,  las 
iremos  publicando  en  Commodore  World, 
según  vayan  llegando. 

5.  — Para  mejor  comodidad  de  todos  y,  a 
sugerencia  de  otros  lectores,  incluimos 
boletín  de  suscripciones  y  de  reserva  encar¬ 
tados,  para  poder  utilizar  uno  u  otro  (¡o  los 
dos!)  más  fácilmente. 

6.  — Igualmente,  el  boletín  de  reserva  va 
“más  claro"  para  evitar  confusiones. 

7.  — Varios  lectores  nos  preguntan  si 
pueden  comprar  más  de  un  ejemplar.  El 
número  de  reservas  NO  está  limitado  a  un 
número  por  lector,  suscriptor  o  no. 

Si  alguien  desea  enviar  un  ejemplar  de 
regalo  a  un  amigo  o  familiar,  se  lo  podemos 
enviar  directamente  desde  la  redacción  con 
tarjeta  de  felicitación,  donde  se  dice  quién 
envía  el  regalo  y  envuelto  especialmente  en 
papel  de  regalo. 


AMIGOS  COLABORADORES 

Por  favor,  si  alguno  de  vosotros  no  ha 
recibido  noticias  nuestras,  no  os  preocu¬ 
péis.  Hemos  estado  super  cargados  de  tra¬ 
bajo  con  todo  el  tema  del  Concurso  Escolar 
y  del  Extraordinario  PERO...  PROME¬ 
TO...  que  en  los  próximos  15  días  tendréis 
noticias  nuestras  TODOS  los  que  han 
enviado  trabajo  y,  algunos  de  vosotros,  con 


sorpresas  interesantes  ya  que  todos  aque¬ 
llos  programas  que  se  hayan  incluido  en  el 
Extraordinario  recibirán  su  remuneración 
correspondiente. 


MERCADILLO  Y  PIRATEO 

La  sección  de  Mercadillo  nació  como 
una  ayuda  e  intercambio  entre  amigos.  Es 
un  servicio  totalmente  gratuito  para  que  los 
lectores  puedan  intercambiar  experiencias, 
puedan  vender  equipos  que  ya  no  necesitan 
o  beneficiarse  de  una  compra  más  econó¬ 
mica  de  2.‘  mano.  En  ningún  momento  se 
ha  intentado  ayudar  y,  mucho  menos, 
potenciar  o  regalar  publicidad  gratuita  al 
“negocio  casero  underground"  de  la  copia 
y  venta  ilegal  de  soft. 

Ultimamente  ha  habido  serios  abusos  en 
la  utilización  de  este  Servicio,  algunos  des¬ 
carados,  enviando  incluso  simplemente  ini¬ 
ciales  con  Apartados  Postales. 

Por  favor,  tomad  nota  de  lo  que  se  admi¬ 
tirá  en  Mercadillo  a  partir  de  ahora: 

a)  Venta  de  hard. 

b)  Intercambio  de  hard  o  soft. 

c)  Intercambio  o  venta  de  libros,  revis¬ 
tas,  literatura,  etc. 

d)  No  se  admitirán  anuncios  de  venta  de 
soft. 

e)  Todas  las  peticiones  debéis  acompa¬ 
ñarlas  de  Nombre  completo  (no  iniciales); 
Dirección  (si  deseáis  Apartado  por  como¬ 
didad  de  Correo  especificadlo,  pero  poned 
también  una  dirección);  Teléfono  si  lo  que¬ 
réis  poner. 

0  Los  anuncios,  saldrán  solamente  un 
mes. 

g)  Para  evitar  confusiones,  malos  enten¬ 
didos,  etc.,  suprimimos  el  servicio  de  anun¬ 
cios  por  palabras  a  las  empresas.  Aquellas 
que  deseen  anunciarse  pueden  pedirnos 
las  tarifas  de  publicidad  a  la  redacción. 

Repetimos  lo  que  ya  hemos  dicho  otras 
veces,  que  lamentamos  tener  que  tomar 
estas  medidas  por  culpa  del  abuso  de  media 
docena  de  listos,  pero  nos  negamos  a  jugar 
a  “censores"  de  los  anuncios  que  nos 
enviáis. 


La  segunda  parte  de  Pasaporte  al 
Mundo,  la  publicaremos  en  nuestro  pró¬ 
ximo  número  debido  a  que  en  el  último 
momento  hemos  visto  un  par  de  cosas  que 
no  nos  convencían  y  que  queremos  compro¬ 
bar  mejor. 


Convocatoria  del  Primer  Concurso 
Nacional  Escolar  do  Programación 
patrocinado  por  Commodore  World 
y  Microelectrónica  y  Control 


1°  Podrán  participar  en  el  mismo  todos  aquellos  niños  y  jóve¬ 
nes  que  están  en  edad  escolar  pre-universitaria  o 
equivalente. 

2*  Habrá  tres  grupos  definidos: 

a)  E.G.B. 

b)  B.U.P. 

c)  F.P. 

3o  Los  trabajos  pueden  ser  presentados  por  equipos  o  por 
individuales. 

4o  Los  trabajos  presentados  por  equipos  deben  especificar: 

a)  Nombre  del  equipo. 

b)  Centro  al  que  representan. 

c)  Nivel  de  enseñanza  que  cursan  (E.G.B.-B.U.P-F.P.). 

d)  Nombre  del  profesor,  monitor  o  coordinador. 

5o  Los  trabajos  presentados  por  individuales  deben  ir  acom¬ 
pañados  de: 

a)  Nombre  del  autor. 

b)  Edad  y  curso  que  estudia. 

c)  (i)  Si  concursa  representando  a  un  centro:  nombre  del 
mismo  y  nombre  del  profesor  responsable. 

(i¡)  Si  concursa  por  si  mismo:  nombre  del  colegio  donde 
estudia  y  firma  del  director  o  profesor  responsable  ava¬ 
lando  que  en  tanto  cuanto  conoce  al  concursante  el  trabajo 
que  presenta  es  suyo  propio. 


6“  El  tema  del  concurso  es  la  realización  de  un  programa  edu¬ 
cativo  sobre  materia  libre  a  elegir  por  los  concursantes.  La 
extensión  del  programa  es  también  de  libre  elección. 

V  Cada  centro  puede  presentar  el  número  de  equipos  o  con¬ 
cursantes  individuafes  que  desee,  siempre  que  cada  trabajo 
sea  enviado  por  separado. 

8o  Los  trabajos  deben  incluir: 

a)  Nombre  el  programa. 

b)  Nombre  del  computador  para  el  que  está  confeccio¬ 
nado  y  periféricos  adicionales  que  se  necesitan  (si  fuese  el 
caso). 

c)  Objetivo  del  programa. 

d)  Explicación  detallada  del  programa  (a  máquina  o 
impresora). 

e)  Listado  completo  a  impresora. 

0  Grabación  en  cinta  o  disco. 

9B  Todos  los  trabajos  presentados  deben  ser  originales  e 
inéditos. 

10°  Los  centros  que  pueden  presentar  equipos  o  concursantes 
individuales  son: 

a)  Todo  colegio,  escuela  o  instituto,  público  o  privado 
que  imparta  las  enseñanzas  de  E.G.B. ,  B.U.P,  o  F.P. 

b)  Centros  de  Informática  que  tengan  grupos  de  ense¬ 
ñanza  específica  para  niños  y  jóvenes  menores  de  18  años. 

c)  Clubs  de  informática  que  mantengan  actividades  espe¬ 
cíficas  para  niños  y  jóvenes  menores  de  18  años. 

11*  Los  trabajos  deben  ser  enviados  antes  del  31  de  diciembre 
de  1984  a  SIMSA,  c/  Barquillo,  21-3»  Izqda.  28004  Madrid. 

12°  El  fallo  del  concurso  se  dará  a  conocer  en  la  primera 
semana  de  marzo  de  1985  en  el  lugar,  fecha  y  hora  que  se 
indicarán. 

13»  Los  trabajos  premiados  quedarán  propiedad  de  los 
patrocinadores. 

RELACION  DE  PREMIOS  EN  PAG.  44 


CONCURSOS  PERMANENTES 


Colaboraciones  da  Programas  y  Magia 

La  verdad  sea  dicha:  os  estáis  portando;  las  colaboraciones  que  nos  están 
llegando  son  numerosas  y  de  muy  buena  calidad.  Por  lo  tanto,  vamos  a 
aclarar  las  condiciones  de  nuestros  concursos  permanentes. 

1)  Los  sorteos  se  realizarán  en  los  meses  de  junio  y  diciembre. 

2)  Se  sortearán  siempre  seis  premios,  tres  de  15.000,  10.000  y  5.000 
pesetas  en  metálico  de  “Commodore  World"  y  tres  del  mismo  valor  en 
material  de  Microelectrónica  y  Control,  entre  todas  las  colaboraciones 
publicadas. 

3)  Se  sortearán  siempre  seis  premios,  tres  de  3.000,  2.000  y  1.000  pesetas 
en  metálico  de  "Commodore  World"  y  tres  del  mismo  valor  en  material  de 
Microelectrónica  y  Control,  entre  todas  las  contribuciones  publicadas  en  la 
sección  de  “Magia". 

4)  Adicionalmente,  se  sortearán  diversos  premios  de  cintas,  juegos,  etc. 
donados  por  firmas  y  distribuciones,  entre  todas  las  colaboraciones. 

5)  Los  autores  de  las  colaboraciones  vendidas  dentro  de  nuestro  "Servicio 
de  Cintas"  percibirán  el  20%  del  precio  de  la  cinta. 

6)  Todas  las  colaboraciones  deben  venir  escritas  a  máquina  y  los  progra¬ 
mas  grabados  en  cinta  (si  es  posible),  o  con  el  listado  completo  en  impresora. 
Nuestros  lectores  más  jóvenes  pueden  escribir  a  mano  pero  con  letra  muy 

7)  Quedan  automáticamente  descalificadas  tanto  del  sorteo  como  del 


a  "Commodore  World",  C/ Barquillo, 


MAS  VIAJES  Y  OTRO  REGALO  DE  “IMPRESION”... 
A  POR  EL  SUSCRIPTOR  8.000 

Es  evidente  que  a  nuestros  sucriptores  les  gusta  viajar.  De  momento  Joan 
Pujiula  visitará  los  Estados  Unidos  en  julio  y  Juan  Mejuto  Iglesias  Irá  a 
Inglaterra  en  el  otoño.  Queríamos  sortear  algo  un  poco  especial  ENTRE 
TODOS  LOS  SUCRIPTORES  cuando  lleguemos  al  suscriptor  número 
8.000,  y  hemos  optado  por  dos  premios,  uno  concedido  por  Microelectró¬ 
nica  y  Control  y  otro  concedido  por  "Commodore  World". 

MEC  regalará  una  impresora  MPS  801  (o  similar),  y  nosotros  hemos 
escogido  un  surtido  de  viajes  muy  "chulos"  para  dos  personas  para  que  el 
ganador  elija  el  que  más  le  apetezca.  La  selección  que  hemos  hecho  es  la 
siguiente: 

V  ¡ajes  de  4  dias  en  hoteles  de  primera  clase  a  uno  de  estos  lugares: 

París,  Lisboa,  Atenas,  Amsterdam,  Niza,  Viena. 

O  viajes  de  una  semana  en  hoteles  de  4/5  estrellas: 

Canarias  o  Mallorca. 


NO  OLVIDEIS 
NUESTRA  NUEVA 
DIRECCION: 
BARQUILLO,  21-3"  IZDA. 
28004  MADRID 
TELEF.:  231  23  88 
231  23  95 


TIRADA  D€  COMMODOR€  WORLD 
Certificación  de  28.000  ejemplares 

Según  certificado  firmado  por  lo  auditorio  internacional  D€lOITT€  HfiSKINS  S€llS,  S.  fi. 
el  5  de  marzo  de  1 984, 

lo  tirado  de  Commodore  UJorld  es  de  28.000  ejemplares. 

€ste  certificado  se  encuentro  en  los  ofidnos  de  S.I.M.S.R.  poro  comproboaón 
de  cualquier  persono  o  entidad  que  lo  desee. 


— Commodore  World  Noviembre  1984/5 


Convocatoria  del  primor  concurso  nacional 
do  programación  on  80  columnas  do 
Commodoro-64  y  40-80  columnas  doi 
VIC-20  patrocinado  por  Forro-Morot,  S.A. 
Con  la  colaboración  do  Commodoro- 
World,  más  do  500.000  ptas.  on  promios 


BASES 

1°  Podrán  participar  todos  los  usuarios  de  COMMODORE- 
64  y  VIC-20  que  hayan  obtenido  la  tarjeta  de  80  columnas 
de  FERRE-MORET,  S.A. 

2®  Cada  concursante  podrá  presentar,  un  programa  realizado 
por  él  o  por  un  equipo  del  que  deberán  indicar  un  titular. 

3®  Se  enviará  la  explicación  detallada  del  programa  redactado 
en  español,  escrito  a  máquina.  El  programa  se  enviará  en 
cassette  o  disco,  adjuntando  su  correspondiente  listado  del 
programa. 

4®  Se  enviarán  por  correo  certificado  a  la  siguiente  dirección, 
FERRE-MORET,  S.A.  calle  Buenos  Aires  n®  30,  2»-3.a  de 
BARCELONA-36.  Antes  del  31  de  enero  de  1985. 

5®  Los  programas  no  premiados  podrán  ser  solicitados  por  sus 
propietarios  en  el  plazo  de  treinta  dias  después  del  fallo. 

6®  El  resultado  se  comunicará,  directamente  a  los  ganadores 
y  se  publicará  en  la  revista  COMMODORE  WORLD. 


7®  Los  premios  se  entregarán  durante  la  primera  semana  de 
marzo  de  1985  coincidiendo  con  la  entrega  de  premios  del 
PRIMER  CONCURSO  NACIONAL  ESCOLAR  DE 
PROGRAMACION. 

8®  Los  programas  premiados  quedarán  en  propiedad  de 
FERRE-MORET.  S.A. 

9®  Los  programas  que  no  obtengan  premio,  recibirán,  en  caso 
que  asi  lo  considere  FERRE-MORET,  S.A.,  ofertas  de 
compra  de  sus  programas. 

10®  Los  premios  ascenderán  a  500.000  Ptas.  repartidos  de  la 
siguiente  manera: 

I®  250.000  Ptas. 

2»  150.000  Ptas. 

3»  100.000  Ptas. 

11®  Todos  los  participantes,  que  no  hayan  recibido  premio  u 
oferta  de  compra,  podrán  participar  en  el  concurso  de  cola¬ 
boradores  que  habitualmente  COMMODORE  WORLD 
viene  realizando  con  un  premio  extra  de  FERRE-MORET, 
S.A.,  de  50.000  Ptas. 

12®  Los  trabajos  deberán  de  ser  inéditos  y  desarrollar  temas  de 
utilidad,  programas  profesionales,  científicos,  educativos, 
etcétera. 

FERRE-MORET,  S.A.  se  reserva  el  derecho  de  modificar  las 
bases  de  este  certamen,  dejarlo  desierto  o  suprimirlo,  por  causa 
de  fuerza  mayor.  En  este  caso  la  empresa  se  compromete  a 
comunicarlo  a  través  de  COMMODORE  WORLD. 


Clave  para  interpretar  los  listados 


Todos  los  listados  que  se  publican  en 
esta  Revista  han  sido  ejecutados  en  el 
modelo  correspondiente  de  la  gama 
de  ordenadores  COMMODORE.  Para  faci¬ 
litar  la  edición  de  los  mismos  en  la  Revista 
y  para  mejorar  su  legibilidad  por  parte  del 
usuario,  se  les  ha  sometido  a  ciertas  modifi¬ 
caciones  mediante  un  programa  escrito 
especialmente  para  ello.  Para  los  progra¬ 
mas  destinados  a  los  ordenadores  VIC-20  y 
COMMODORE  64,  en  los  que  se  usan  fre¬ 
cuentemente  las  posibilidades  gráficas  del 
teclado,  se  han  sustituido  los  símbolos  grᬠ
ficos  que  aparecen  normalmente  en  los  lis¬ 
tados  por  una  serie  de  letras  entre  corchetes 
[]  que  indican  la  secuencia  de  teclas  que  se 
deben  pulsar  para  obtener  el  carácter 
deseado.  A  continuación  se  da  una  tabla 


para  aclarar  la  interpretación  de  las  indica¬ 
ciones  entre  corchetes: 

[CRSRD]  =  Tecla  cursor  hacia  abajo  (sin 
SHIFT) 

[CRSRU]  =  Tecla  cursor  hacia  arriba  con 
SHIFT) 

[CRSRR]  =  Tecla  cursor  a  la  derecha  (sin 
SHIFT) 

[CRSRL]  =  Tecla  cursor  a  la  izquierda  (con 
SHIFT) 

[HOME]  =  Tecla  CLR/HOME  (sin  SHIFT) 
[CLR]  =  Tecla  CLR/HOME  (con  SHIFT) 

Las  indicaciones  [BLK]  a  [YEL]  corres¬ 
ponden  a  la  pulsación  de  las  teclas  de  I  a  8 
junto  a  la  tecla  CTRL.  Lo  mismo  sucede 


con  [RVSON]  y  [RVSOF]  respecto  a  la  tecla 
CTRL  y  las  teclas  9  y  10. 

El  resto  de  las  indicaciones  constan  de  la 
parte  COMM  o  SHIF  seguidas  de  una 
letra,  número  o  simbolo  —por  ejemplo 
[COMM+]  o  [SHIFA] — .  Esto  indica  que 
para  obtener  el  gráfico  necesario  en  el  pro¬ 
grama  deben  pulsarse  simultáneamente  las 
teclas  COMMODORE  (la  que  lleva  el  logo¬ 
tipo)  o  una  de  SHIFT  y  la  tecla  indicada 
por  la  letra,  el  número  o  el  simbolo,  en  el 
ejemplo  anterior:  COMMODORE  y  +  o 
SHIFT  y  A,  respectivamente. 

En  los  signos  gráficos  además  se  cuenta 
el  número  de  veces  que  aparece.  Por  ejem¬ 
plo,  [7  CRSRR]  equivale  a  7  pulsaciones  de 
la  tecla  cursor  a  la  derecha  y  [3  SPC]  tres 
pulsaciones  de  la  barra  espaciadora.  ■ 


INDICE  DE  ANUNCIANTES 


-pág- 


ALBAREDA .  25 

ASTOC-DATA .  65 

BASIC  MICROORDENADORES .  15 

BROTHER .  21 

CASA  DE  SOFTWARE .  13,  41 

COMMODORE  WORLD  (Distribución) .  61 

COMMODORE  WORLD  (Suscripciones)...,  65 

COMPUTER  MAIL .  49 

CONCURSO  ESCOLAR .  44 

DELTABIT .  56 

DIRECTORIO .  (5 

ELECTROAFICION .  58 


_PáiL_ 


FERRE  MORET .  19,  27 

FIRST .  35 

ICR .  53 

IDEALOGIC .  30,  31 

INDESCOMP .  75 

INFORMATICA  Y  EDUCACION,  S.  A .  43 

KENT  ELECTRONIC .  57 

MICROELECTRONICA .  46,  47,  76 

MICROSISTEMAS .  50 

REGISTER  LATELY  CONTINENTAL .  45 

RENT  SOFT  64 .  55 

SAKATI .  2 


6/Commodore  World  Noviembre  1984- 


John  KULA  (RUN  EE.UU.) 
Traducido  por  Vaierie  SHANKS 


El  arte 
y  la  ciencia 
de  la 

programación 


La  programación  es 
tanto  un  arte  como  una 
ciencia.  En  este 
artículo  hablamos  de 
varias  técnicas  que  te 
ayudarán  a  ser  un 
programador  más 
creativo  y  competente. 


%  **  *** 


Antes  de  empezar  a  programar,  tienes 
que  tener  en  cuenta  dos  requisitos 
importantes,  sin  los  cuales  un  pro¬ 
grama  puede  resultar  bueno  pero  nunca 
llegará  a  ser  excepcional. 

El  primero  de  ellos  es  la  investigación, 
es  decir  que  tienes  que  comprender  per¬ 
fectamente  no  solamente  toda  la  informa¬ 
ción  necesaria  para  el  futuro  programa, 
sino  también  la  finalidad  de  este. 

Por  ejemplo,  si  quieres  escribir  un  pro¬ 
grama  de  utilidades  que  vuelve  a  numerar 
las  líneas  de  los  programas  almacenados 
en  la  memoria,  también  tienes  que  decidir 
(entre  otras  cosas)  si  quieres  volver  a 
numerar  todos  los  números  de  línea  ani¬ 
dados  (es  decir,  los  que  siguen  un  GOTO, 
GOSUB,  etc.)  o  si  prefieres  hacerlo  más 
tarde  a  mano. 

Las  dos  opciones  son  buenas,  siempre  y 
cuando  se  elige  una  a  conciencia.  Pero  si 
no  has  realizado  ningún  tipo  de  investiga¬ 
ción,  y  por  lo  tanto  no  te  habías  enterado 
de  que  existía  una  limitación,  eso  es  otra 
cosa. 

El  programa  que  vuelve  a  numerar  las 
líneas  constituye  un  ejemplo  sencillo; 
pero  esta  norma  adquiere  cada  vez  más 
importancia  a  medida  que  se  aumenta  la 
dificultad  del  programa.  Actualmente 
estoy  trabajando  en  un  programa  simulador 
para  el  C-64  que  requiere  un  total  de  más 
de  100K  de  memoria  (hablaré  de  esto  más 
adelante).  Naturalmente,  el  programa  es 
complejo,  y  tardé  tres  meses  en  realizar 
mis  investigaciones;  pero  estoy  conven¬ 


cido  de  que  quedan  cubiertas  por  lo 
menos  el  95%  de  las  posibilidades. 

El  segundo  paso  es  hacer  un  resumen. 
Algunos  programadores  insisten  en  el  uso 
de  un  diagrama  de  flujo  complejo  y  deta¬ 
llado,  pero  yo  sospecho  que  esto  es  una 
manía  que  data  de  los  tiempos  en  que  los 
programas  tenían  que  ser  escritos  en  len¬ 
guaje  máquina.  Aunque  ciertas  secciones 
de  un  programa  requieran  un  diagrama 
de  flujo,  esto  es  necesario  solamente 
cuando  la  secuencia  lógica  se  hace  un 
poco  complicada. 


Otra 

_ técnica 

útil 

es  escalonar 
todos 
los  bucles 
For...Next, 
de  la  misma 

_ jorma  _ 

que _ 

se  hace _ 

en  el 

lenguaje  Pascal 


Es  más  importante  para  el  esquema 
general  hacer  un  resumen  de  los  pasos  y 
bloques  del  programa.  Sin  embargo,  en 
caso  de  que  resulte  absolutamente  necesa¬ 
rio  utilizar  un  diagrama  de  flujo,  no  hace 
falta  de  momento  que  te  preocupes  del 
uso  correcto  de  los  símbolos...  esto  se 
aprende  sobre  la  marcha.  Estos  símbolos 
tienen  que  constituir  una  ayuda  y  no  un 
obstáculo. 

Escribir  un  programa 

No  tienes  que  seguir  unos  pasos  esta¬ 
blecidos  para  escribir  un  programa.  Para 
tener  que  depurar  algo,  primero  tienes 
que  escribirlo.  Evidentemente,  si  trabajas 
un  poquito,  la  codificación  puede  resultar 
bastante  sencilla  y  elegante.  Pero  tienes 
que  evitar  el  síndrome  del  procesador  de 
textos. 

Los  procesadores  de  textos  te  permiten 
realizar  cambios  fácilmente,  y  dan  la  sen¬ 
sación  de  que  la  perfección  está  a  la  vuelta 
de  la  esquina.  Ocurre  lo  mismo  con  los 
ordenadores,  sobre  todo  con  los  que  dis¬ 
ponen  de  un  buen  editor  de  pantalla. 

Cuando  tu  programa  funciona  como 
tenía  que  funcionar  sin  dar  ningún  pro¬ 
blema,  intenta  abreviarlo  y  luego  ¡déjalo 
tal  y  como  está!  Cuanto  más  lo  toques, 
más  probabilidades  tienes  de  que  te  salga 
un  problema.  Vale  más  saber  dejarlo  a 
tiempo  que  ahorrar  uno  o  dos  bytes  más 
de  memoria. 

Me  resulta  útil  salvar  dos  versiones  de 
un  programa  terminado.  La  copia  de  tra- 

- Commodore  World  Noviembre  19*4/9. 


bajo  es  la  versión  abreviada,  para  que 
tarde  menos  tiempo  en  cargarse  y  ejecu¬ 
tarse.  La  copia  de  reserva  es  la  más  com¬ 
pleta  y  documentada,  y  me  ayuda  a  seguir 
la  lógica  y  acordarme  de  mis  suposiciones 
si  tengo  que  hacer  unas  modificaciones 
unos  meses  más  tarde  (y  hay  pocos  pro¬ 
gramas  que  no  se  benefician  de  un  par  de 
cambios). 


Documentación  de  un  programa 

Hay  un  par  de  trucos  que  resultan 
especialmente  útiles  para  documentar  un 
programa.  Primero,  utilizo  la  sentencia 
REM  con  frecuencia  para  explicar  lo  que 
está  pasando  en  las  zonas  clave  y  para 
indicar  cada  subrutina.  A  menudo  uso 
números  de  línea  que  terminan  en  cero 
para  las  lineas  del  programa,  y  utilizo 
números  que  terminan  en  cualquier  otro 
dígito  para  indicar  las  REM  o  los  espacios 
(una  línea  que  contiene  solamente  dos 
puntos  no  afecta  el  programa,  pero  deja 
una  clara  separación  en  el  listado).  Este 
sistema  de  numeración  me  ayuda  a  borrar 
las  lineas  no  deseadas  a  la  hora  de  abre¬ 
viar  el  programa  para  quedarme  con  la 
versión  de  trabajo. 

Aquí  el  único  problema  es  que  la  linea 
para  una  sentencia  GOTO  o  GOSUB  no 
debe  ser  una  línea  reservada  para  un 
comentario  o  un  espacio.  Aunque  tú  no 
tengas  la  intención  de  abreviar  el  pro¬ 
grama,  se  lo  podías  dejar  a  una  persona 
(como  yo,  por  ejemplo)  que  si  lo  va  a 
hacer.  Sé  generoso  con  los  curiosos. 

Otra  técnica  útil  es  escalonar  todos  los 
bucles  For...Next,  de  la  misma  forma  que 
se  hace  en  el  lenguaje  Pascal.  De  este 
modo  resulta  más  fácil  seguir  la  lógica  del 
listado  y  ayuda  a  localizar  cualquier  error 
en  el  anidado  de  los  bucles.  Aquí  de 
nuevo,  los  dos  puntos  entrantes  sirven 
muy  bien  para  escalonar;  se  pueden  colo¬ 
car  uno  encima  del  otro  sin  causar  ningún 
problema. 

Por  último,  las  dos  primeras  líneas  de 
cada  uno  de  mis  programas  de  reserva 
contienen  información  sobre  los  listados 
para  la  versión  impresa.  Todos  mis  lista¬ 
dos  empiezan  por  el  nombre  del  fichero 
en  letras  grandes  además  de  la  fecha  de  la 
última  actualización  o  modificación. 
Guardo  sin  tocar  los  listados  importantes 
(los  que  incluyan  modificaciones  impor¬ 
tantes  y/o  significativas)  para  poder  refe- 
I  rirme  a  ellos  en  el  futuro.  Los  otros  pue¬ 
den  ser  usados  para  encender  la  chimenea. 


LlO/Commodore  World  Noviembre  1984. 


Los  comandes 

Yo  uso  un  cartucho  de  "Ayuda  al  Pro¬ 
gramador”  que  facilita  en  gran  parte  la 
edición  de  los  programas  en  Basic  al  dis¬ 
poner  de  más  comandos.  Existen  varias 
marcas  comerciales  en  el  mercado,  cada 
uno  con  sus  méritos  y  sus  defectos. 

Depuración  de  errores 

La  depuración  de  un  programa  es  una 
experiencia  desagradable  que  hace  sufrir 
hasta  a  los  profesionales.  La  depuración 
realmente  tiene  que  ver  con  dos  tipos  dis¬ 
tintos  de  problemas.  Los  problemas  de 
sintaxis  surgen  de  los  errores  cometidos 
en  el  uso  del  lenguaje  Basic  y  normal¬ 
mente  son  fáciles  de  localizar,  dado  que  la 
mayoría  de  ellos  provocan  un  pequeño 
desastre;  aparece  un  mensaje  de  error  en 
la  pantalla  y  el  programa  se  para;  o  el 
ordenador  queda  colgado  y  no  contesta  al 
teclado;  o  la  pantalla  lleva  tanto  tiempo 
sin  cambiarse  que  empiezas  a  sospechar 
(la  causa  de  este  problema  es  un  bucle  sin 
fin,  cosa  que  en  sí  no  es  catastrófica,  pero 
que  igualmente  hace  parar  el  programa). 

El  otro  tipo  de  problema  es  funcional,  y 
tiene  unas  consecuencias  más  serias  dado 
que  no  lo  descubres  hasta  que  se  ejecuta  el 
programa  y  se  reciben  unas  respuestas  o 
resultados  no  esperados.  Dado  que  un 
error  de  sintaxis  indica  el  número  de  línea 
donde  se  pueda  encontrar  el  error,  los 
problemas  serios  deben  ser  más  fáciles  de 
diagnosticar  y  corregir. 

¿Y  los  demás?  Bien,  existen  básica¬ 
mente  dos  posibilidades:  o  las  suposicio¬ 
nes  básicas  del  programa  son  incorrectas 
y  la  simulación  de  los  sucesos  reales  no  es 
realista,  o  bien  existe  un  error  en  la  lógica 
de  la  codificación.  Vamos  a  suponer  que 
estás  convencido  de  la  precisión  del  pro¬ 
grama;  la  alternativa  es  bastante  triste  y 
tiene  pocas  posibilidades  de  arreglo  a 
parte  de  más  investigación  y  codificación. 

La  solución  es  la  reducción  de  la  zona 
de  búsqueda.  Primero,  crea  unos  datos  de 
prueba  (cuanto  más  sencillos  mejor)  y 
escríbelos  en  el  programa.  Repasa  el  pro¬ 
grama  e  introduce  puntos  de  referencia 
(es  decir,  el  comando  Stop)  en  cada  punto 
en  que  los  datos  acaban  de  ser  manipu¬ 
lados. 


_ Existe _ 

un  aspecto^ 
de  la  programación 

_ que 

no  recibe _ 

_ mucha _ 

publicidad 
pero  que 
esta  relacionado 

_ con  la _ 

depuración 
y  es  la  búsqueda 
de  errores. 


Ahora  ejecuta  el  programa  y  compara 
los  datos  producidos  en  cada  punto  de 
referencia  con  los  datos  que  tú  tienes  cal¬ 
culados  a  mano.  Si  coinciden,  teclea 
CONT  y  repite  todo  el  proceso  en  el 
siguiente  punto  de  referencia.  Cuando 
llegas  a  un  punto  de  referencia  en  que  los 
datos  no  coinciden,  esto  indica  que  el 
problema  se  encuentra  entre  este  punto  y 
el  último  comando  Stop.  Por  supuesto, 
este  proceso  de  depuración  resulta  menos 
laborioso  si  dispones  de  un  programa  de 
utilidades  con  opciones  de  búsqueda  o  de 
ejecución  paso  a  paso. 

E>  una  trampa 

Existe  un  aspecto  de  la  programación 
que  no  recibe  mucha  publicidad  pero  que 
esta  relacionado  con  la  depuración  y  es  la 
búsqueda  de  errores,  que  pudieran  intro¬ 
ducirse  en  el  sistema  a  través  del  usuario. 
El  PET  Basic,  versión  2.0.  contenido  en  el 
VIC-20  y  el  C-64,  realiza  parte  de  este 
proceso  automáticamente,  pero  no  hace 
lo  suficiente.  El  Basic  te  pone  una  trampa 
si  intentas  introducir  un  “string"  cuando 
estaba  esperando  un  número,  pero  no  al 
revés  (obviamente  no  te  puede  leer  los 
pensamientos  para  saber  si  querías  intro¬ 
ducir  un  “string"  numérico  o  no). 

Por  ejemplo,  uno  de  los  grandes  dolo¬ 
res  de  cabeza  del  PET  Basic  es  el  "string” 
nulo.  Si  la  variable  de  “string”  no  conte¬ 
nía  datos  anteriores,  aparece  el  "string" 
nulo  cuando  contestas  el  mensaje  de 
entrada  de  “string"  pulsando  la  tecla 
Return.  Nosotros  sabemos  que  allí  no  hay 
nada,  pero  el  ordenador  no  se  divierte 
mucho,  especialmente  si  le  ordenas  que  te 
busque  el  valor  ASCII  de  un  “string" 
nulo.  Una  solución  que  se  usa  con  fre¬ 
cuencia  es  la  de  añadir  CHRS(0)  a  cada 
input  de  “string".  Por  ejemplo: 

10  INPUT“STR1NG";QS 
20  QS=QS+CH  R$(0) 

La  teoría  es  que  un  “string"  normal  no 
quedará  afectado,  pero  que  garantizará 
que  un  "string"  nulo  no  deseado  con¬ 
tenga  algo  que  pueda  reconocer  el  orde¬ 
nador.  Desafortunadamente,  algo  que 
añade  al  “string”,  de  modo  que  si  en 
algún  momento  necesitas  saber  la  longi¬ 
tud  o  el  valor  numérico  del  “string”,  te 
encontrarás  con  un  problema  más  gordo 
que  al  principio. 

La  solución  que  yo  sugiero  es  más 
corriente,  pero  por  lo  menos  asegura  que 
no  habrá  un  "string"  nulo  ni  un  “string” 
con  añadiduras.  La  presento  a  conti¬ 
nuación: 

10  1NPUT"STRING”:Q$ 

20  IF  Q$=”"GOTO  10 

El  arte  de  detectar  errores  significa 
tener  en  cuenta  todos  los  tipos  de  entrada 
posibles  y  juzgar  su  validez.  Solamente 
porque  tú  especificas  un  rango  de  res¬ 
puestas  aceptables  en  tu  programa  no 
significa  que  alguien  no  probara  con  otra 
respuesta,  aunque  sea  sin  querer.  Si  tú 
esperas  una  respuesta  numérica  dentro  de 
un  rango  pequeño,  utiliza  un  comando 
ON...GOTO  para  probar  la  entrada. 
Puedes  castigar  los  datos  malos  con  un 


mensaje  duro,  adjudicarles  un  valor  poco 
popular  o  hacer  cualquier  otra  cosa. 

Lo  que  no  hay  que  olvidar  de  los 
comandos  ON...GOTO  y  ON...GOSUB 
es  que  hacen  la  prueba  para  ver  si  están 
los  números  enteros  positivos.  Los  valo¬ 
res  de  cero  pasan  por  delecto  a  la 
siguiente  linea  del  programa,  al  igual  que 
los  valores  mayores  que  las  opciones  que 
tú  tienes  en  cuenta.  Por  ejemplo: 

10  INPUT"NUMBER(4  TO  6)";Q 
20  ON  Q-3  GOTO  40,  50.  60 
30  PRINT-INTENTALO  DE  NUEVO, 
TONTO”:  GOTO  10 
40  PRINT“Q=4":  END 
50  PR1NT“Q=5”:  END 
60  PRINT“Q=6":  END 
La  variable  Q  de  la  linea  10  se  ha  con¬ 
vertido  en  la  variable  Q-3  en  la  linea  20.  Si 
esta  variable  es  igual  a  cero  o  mayor  que 
el  número  de  artículos  de  la  lista,  el  orde¬ 
nador  ignora  el  comando  ON.  GOTO 
(linea  20)  y  ejecuta  la  linca  siguiente 
(linea  30). 

¿Qué  ocurre  con  las  variables  negati¬ 
vas?  Resultarán  en  un  error  de  ?lllegal 
Quantity  y  el  ordenador  quedará  colgado. 
Este  ejemplo  demuestra  perfectamente  la 
necesidad  de  tener  una  forma  de  detectar 
errores.  La  mayoría  de  las  personas  ni 
intentarían  introducir  un  número  nega¬ 
tivo,  y  un  accidente  de  este  tipo  seria  muy 
poco  probable.  Pero  en  este  ejemplo,  una 
entrada  de  0,  I  ó  2  daría  una  variable 
negativa  en  la  linea  20.  Añade  el  siguiente 
truco  para  pescar  errores  en  la  linea  15. 

15  IF  Q*=3  THEN  Q  =  3 
Por  fin  todas  las  posibilidades  han  sido 
tenidas  en  cuenta. 

Si  mantienes  las  rutinas  de  entrada  lo 
más  flexibles  posible  no  significa  necesa¬ 
riamente  que  se  detectarán  todos  los  erro¬ 
res,  pero  si  ayudará  la  coexistencia  paci¬ 
fica  entre  el  programa  y  el  programador. 
La  siguiente  rutina  es  demasiado  rígida, 
permitiendo  solamente  dos  respuestas. 

10 INPUT"  LISTO  PARA  CONTINUAR"; 
Q$ 

20  IF  QS=”S"GOTO  50 
30  IF  QS=“N"GOTO  10 
40  PRINT-QUE  MALO  ERES  etc.  etc 
50  Continúa  con  el  programa 
Si  añades  la  siguiente  línea,  te  permite 
más  variedad  (sí,  bueno,  vale,  por  qué  no) 
15  Q$=LEFT$(Q$,1) 

O  mejor  todavia.  dado  que  lo  único  que 
quieres  hacer  es  retrasar  la  ejecución  del 
programa  hasta. que  tú  estés  listo,  tienes 
suficiente  con  lo  siguiente: 

10 INPUP  LISTO  PARA  CONTINUAR"; 
Q$ 

20  IF  LEFT$(QS, I )=“N"GOTO  10 
Para  que  te  resulte  aún  más  fácil  (la 
verdad  es  que  poca  gente  se  molesta  en 
teclear  N,  esperaría  hasta  que  estuviera 
lista  y  teclearía  S),  incluye  la  propuesta 
más  probable  dentro  del  mismo  mensaje, 
para  que  sólo  tengas  que  pulsar  la  tecla 
return.  A  continuación  se  presenta  la 
codificación  para  una  nueva  linea  10: 


INPUT  -SIGO  [2  SPC][RVSON] 
[RVSOFF][3  CRSRLJ";Q$ 


Si  tecleas  y  ejecutas  esta  linea,  una  “S" 
intermitente  tiene  que  aparecer  debajo  del 
cursor,  detrás  del  Input.  Sólo  tienes  que 
pulsar  la  tecla  Return  para  activar  la  res¬ 
puesta  S.  En  este  caso,  una  solución  aún 
más  elegante  seria  la  siguiente,  que  es  la 
que  yo  utilizo  normalmente  en  estas 
circunstancias. 

10  PRINT  PULSA  CUALQUIER  TECLA 

PARA  CONTINUAR" 

20  WAIT  197,64:  WAIT  197.64,64 
30  POKE  198,0 

Por  si  lo  quieres  saber,  la  linea  30  borra 
el  buffer  del  teclado,  para  que  al  pulsar  la 
tecla  para  continuar  el  programa,  la  pro¬ 
pia  tecla  no  aparezca  en  la  pantalla  pro¬ 
vocando  un  error. 

Sacando  el  jugo 

Abreviar  un  programa  es  aconsejable 
en  cualquier  caso,  pero  si  te  encuentras 
con  un  error  de  ?Out  Of  Memory,  este 
proceso  se  hace  imprescindible.  Un  buen 
sitio  para  empezar  es  con  los  comenta¬ 
rios,  sobre  todo  teniendo  en  cuenta  que  la 
linea  entera  de  una  sentencia  REM  se 
almacena  en  la  memoria  exactamente  de 
la  misma  forma  en  que  tú  la  tecleas,  aqui 
no  estamos  hablando  He  la  conversión  en 
números  ni  el  uso  de  los  “tokens”. 

Otro  sistema  para  ahorrar  espacio  es 
eliminar  todos  los  espacios  en  blanco  no 
necesarios,  pero  hay  que  tener  un  poco  de 
cuidado  con  esto.  A  veces  es  necesario 
dejar  un  poco  de  espacio  para  que  el 
ordenador  no  piense  que  reconoce  una 
palabra  clave.  Por  ejemplo,  ON  T  AND  S 
GOTO  130  puede  ser  abreviado  a  ONT 
ANDSGOTOI30.  Es  necesario  dejar  el 
espacio  en  blanco  para  que  TAN  no  se 
considere  como  una  palabra  clave. 

Hay  muchos  trucos  como  este  para 
recuperar  unos  cuantos  bytes.  Pero 
cuando  esto  no  es  suficiente,  la  solución 
seria  dividir  un  programa  largo  en  dos  o 
más  programas  cortos  y  cargarlos  por 
separado.  Sin  embargo,  esto  sólo  fun¬ 
ciona  cuando  cada  parte  del  programa  se 
puede  ejecutar  independientemente  de  los 
demás,  de  modo  que  hay  que  tener 
cuidado. 

Aunque  introduzcas  un  comando  Load 
para  que  se  ejecute  cuando  el  programa 
llega  a  este  punto,  habrá  dificultades.  No 

Lo  que _ 

no^hay  (jue  olvidar 
de  Jos 
comandos 
ON...GOTO 
y  ON...GOSUB 

es  que _ 

hacen  la  prueba 
para  ver 

_ si  están 

los  números 
enteros 
_ positivos. 


se  puede  borrar  el  contenido  anterior  sin 
también  borrar  la  instrucción  Load.  Y  si 
el  nuevo  programa  es  más  largo  que  el 
original,  te  encontrarás  con  un  problema 
en  el  momento  en  que  el  programa  nuevo 
intente  cargarse  en  la  zona  reservada 
antes  para  las  variables.  La  solución  fácil 
es  engañarle  al  ordenador  para  que  piense 
que  está  ejecutando  un  comando  Load 
procedente  del  teclado;  el  comando  Load 
recibido  en  el  modo  inmediato  también 
ejecuta  automáticamente  el  comando 
New. 

Para  poder  hacer  esto,  primero  tienes 
que  fijar  los  comandos  apropiados  en  la 
pantalla,  en  sus  posiciones  correctas,  a 
través  de  las  sentencias  Print.  De  esta 
forma  los  13  del  código  ASCII  (Returns) 
se  introducen  mediante  un  Poke  en  el  buf¬ 
fer  del  teclado.  Estos  Returns  están  cro¬ 
nometrados  para  que  coincidan  con  la 
situación  del  cursor  en  la  misma  linea  de 
la  pantalla  que  una  de  las  lineas  que  apa¬ 
recía  antes  en  el  mismo  sitio.  Una  vez  eje¬ 
cutado  el  primer  comando.  Load,  el  cur¬ 
sor  se  desplaza  automáticamente  a  la 
segunda  linea,  RUN.  El  segundo  Return 
del  buffer  ejecuta  esta  linca,  y  el  segundo 
programa  habrá  sido  cargado  y  ejecutado 
correctamente.  Suponiendo  que  el  nuevo 
nombre  del  programa  es  “NUEVO 
PROG",  el  nuevo  listado  tendrá  la 
siguiente  forma: 

10  PRINT”[4  CRSR  DNsJ” 

20  REM  [CRSR  DN]=CURSOR  ABAJO 
30  PRINT"LOAD"CHR$(34)"0:NUEVO 
PROG‘‘CH R$( 34", 8[ 4  CRSR  DNs]" 
40  PRINT-RUN” 

50  PRINT"[9  CRSR  UPs]" 

60  REM  [CRSR  UP]=CURSOR  ARRIBA 
70  POKE  631,  13: POKE  632.  13 
80  REM  ESTOS  SON  DOS  (RETURNS) 
INTRODUCIDOS  EN  EL  BUFFER 
DEL  TECLADO  MEDIANTE  UN 
POKE 

90  POKE  198,2 

99  REM  ESTO  ESPECIFICA  QUE  EL 
BUFFER  CONTIENE  ACTUALMEN¬ 
TE  DOS  CARACTERES 
Por  último,  un  hecho  curioso  y  poco 
conocido  acerca  de  los  ordenadores.  Los 
chips  de  un  circuito  integrado  funcionan 
a  base  de  humo.  Si  llevas  mucho  tiempo 
delante  del  ordenador  y  ves  que  le 
empieza  a  salir  humo,  es  que  los  chips  se 
están  quedando  sin  humo  y  por  lo  tanto 
dejarán  de  funcionar. 

—  Commodore  World  Noviembre  I984/11_ 


John  SCHMOYER  (RUN  EEUU) 


Traducido  por  Valerte  SHANKS  y  adaptado  por  Alvaro  1BAÑEZ 


Lleva  tu  propia  contabilidad 


Este 

programa 
te  hará 
el  balance 
de  tus 
cuentas, 
te  mantendrá 
al  tanto 
de  tus 

transacciones 
y  te  ayudará 
a  hacer 
tu  presupuesto 


Algunos  de  los  anuncios  que  se  ven 
hoy  en  dia  acerca  de  los  ordena¬ 
dores  intentan  convencerte  de  que 
tienes  que  comprarte  una  de  estas  máqui¬ 
nas  maravillosas  porque  realmente  te  es 
imprescindible. 

Te  dicen  que  te  tienes  que  mantener  en 
tanto  en  cuanto  a  los  avances  tecnológi¬ 
cos.  Te  lo  debes  a  ti  y  a  la  seguridad  de  tu 
familia  comprarte  el  ordenador  XYZ.  Si 
no  por  otra  cosa,  ¡piensa  en  tus  niños! 
Tienen  que  estar  familiarizados  con  los 
ordenadores  simplemente  para  poder  so¬ 
brevivir  la  edad  de  la  informática. 

Pero  ¿qué  ocurre  con  esas  miles  de  per¬ 
sonas  que  "piensan  en  sus  niños",  y  se 
encuentran  con  que  los  niños  no  hacen 
otra  cosa  que  jugar  a  los  marcianitos  con 
el  "bicho”?  Por  ejemplo,  mi  hijo  de  nueve 
años  tiene  muy  poco  interés  en  hacer  pro¬ 
gramas  en  su  C-64,pero  le  encanta  tirarse 
todo  el  dia  jugando.  Menuda  gracia  para 


C-64 


mi  y  para  miles  de  personas  como  yo  que 
han  invertido  su  dinero  en  un  ordenador 
personal. 

Casi  todo  el  software  disponible  en  el 
mercado  son  juegos.  A  mí  también  me 
gusta  jugar,  pero  tengo  mi  lado  práctico, 
especialmente  cuando  se  trata  de  algo  que 
me  ha  costado  mucho  dinero.  Afortuna¬ 
damente,  cada  día  hay  más  software  con 
fines  más  prácticos. 

En  este  artículo,  me  gustaría  compartir 
con  vosotros  lo  que  yo  considero  un  pro¬ 
grama  práctico. 

Lo  quo  hoco  ol  programa 

El  programa  “Contabilidad”  te  ayu¬ 
dará  a  seguir  la  pista  de  todas  tus  activi¬ 
dades  financieras,  y  va  más  allá  de  sim¬ 
plemente  registrar  toda  la  información. 
Te  permite  sacar  en  la  pantalla  (o  en  la 
impresora  si  tienes  una)  una  lista  com¬ 
pleta  de  tus  transacciones.  Si  tienes  todas 
tus  actividades  registradas  en  un  par  de 
páginas  reduce  el  tiempo  que  pierdes  en 
sacar  sentido  del  saldo  de  tu  cuenta  ban- 
caria.  Pero  aún  hay  más. 

¿Y  tu  presupuesto  doméstico?  Quizás 
tengas  problemas  en  recordar  a  dónde  te 


ha  ido  todo  el  dinero.  Quizás  es  la  hora  de 
saber  exactamente  cuánto  se  gasta  en 
comida,  ropa,  transporte  y  otras  cosas. 
Este  programa  también  te  ayudará  en  este 
aspecto. 

El  funcionamiento  del  programa 

Para  empezar,  el  programa  te  pide  un 
nombre  para  el  fichero.  Esta  caracterís¬ 
tica  te  permite  registrar  toda  la  actividad 
de  un  mes  en  un  fichero.  Puedes  guardar 
el  fichero  todo  el  tiempo  que  quieras.  Lo 
único  que  tienes  que  hacer  es  asignarle  un 
nombre  nuevo  a  cada  mes.  (Yo  siempre  le 
pongo  el  nombre  del  mes.)  Por  ejemplo,  si 
estamos  en  el  mes  de  abril,  y  quieres  saber 
lo  que  hiciste  en  marzo,  introduce  marzo 
como  el  nombre  del  fichero  y  lo  podrás 
saber. 

Si  introduces  un  nombre  del  fichero 
que  no  se  encuentra  en  el  disco,  el  pro¬ 
grama  te  contesta,  "¿Es  un  fichero 
nuevo?”.  Tú  tienes  que  contestar  S  o  N. 
Esto  proporciona  un  poco  de  seguridad 
por  si  te  equivocas  a  la  hora  de  teclear  un 
nombre  de  fichero.  Si  el  fichero  se 
encuentra  en  el  disco,  la  información  se 
carga  en  la  memoria. 


Ll2/Commodore  World  Noviembre  1984 


Lleva  tu  propia  contabilidad  - 

p  A  continuación,  aparece  el  menú  prin¬ 
cipal.  Tiene  el  siguiente  aspecto: 

MENU  CONTABILIDAD 
1=  Añadir  Transacciones 
2=Modificar  Transacciones 
3=Imprimir  Registros 
4=Consultar  sobre  el  Balance 
5=Análisis  del  Presupuesto 
6=Cancelar 

Tienes  seis  opciones.  Las  dos  primeras 
te  permiten  añadir  nuevas  transacciones  o 
modificar  las  existentes.  La  tercera  te 
permite  imprimir  un  registro  de  todas  las 
actividades  en  el  fichero.  Esto  se  puede 
hacer  en  la  pantalla  o  en  la  impresora. 

La  opción  cuatro  calcula  y  saca  en  pan¬ 
talla  el  saldo  de  tu  cuenta.  Esta  es  la 
forma  más  sencilla  y  rápida  de  saber  el 
dinero  que  tienes  disponible  en  tu  cuenta. 

La  opción  cinco  te  permite  analizar  los 
gastos  de  tu  familia  dentro  de  cada  cate¬ 
goría  presupuestaria  que  tú  has  estable¬ 
cido.  También  calculará  el  porcentaje  que 
esta  cantidad  representa  en  comparación 
con  el  gasto  total  de  un  mes.  La  sexta 
opción  da  fin  al  programa. 

Cómo  funciona  el  programa 

Vamos  a  estudiar  el  programa  linea  por 
linea  para  ver  cómo  funciona. 

Linea  100  —Fija  un  límite  de  150 
como  el  máximo  número  de  transacciones 
en  el  programa.  Yo  normalmente  tengo 
75  transacciones  en  un  mes,  por  lo  que 
creo  que  150  es  suficiente.  Este  número 
puede  ser  aumentado,  pero  ten  dudado, 
te  podrías  quedar  sin  memoria. 

Líneas  1 10- 175. — Definen  varios  códigos 
de  control  y  colores  de  la  pantalla  y  los 
caracteres.  Puedes  cambiar  los  colores 
cuando  quieras. 

Líneas  180-185.— Definen  una  variable 
de  40  espacios,  y  otra  de  80  signos  de 
igual  a  (=);  éstos  se  utilizan  a  lo  largo  del 
programa. 

Linca  190.— Inicializa  los  colores  de  la 
pantalla  y  los  bordes. 

Lineas  200-210. — Definen  las  varia¬ 
bles  de  los  “arrays”  que  contendrán  las 
transacciones. 

DT$  es  la  fecha  de  la  transacción.  Uti¬ 
liza  el  formato  estándard  de  MM/DD/AA 
cuando  introduces  la  fecha;  BC$  es  la 
categoria  del  presupuesto,  que  puede  ser 
cualquier  cosa,  siempre  y  cuando  no 
tenga  una  longitud  superior  a  los  tres 
caracteres;  DS$  es  la  descripción  de  la 
actividad,  de  hasta  veinte  caracteres  de 
longitud;  CK$  es  el  número  de  talón,  de 
hasta  cuatro  caracteres  de  longitud;  CAS 
es  el  importe  de  talón  (o  el  importe  de  los 
cargos  bancarios,  recargos,  etc.);  DAS  es 
la  cantidad  depositada. 

Las  transferencias  realizadas  de  tu 
cuenta  corriente  a  tu  cuenta  de  ahorros 
tienen  que  ser  entradas  como  una  canti¬ 
dad  negativa  en  la  cuenta  corriente,  para 
que  el  cuadro  general  de  gastos  no  se 
quede  descompensado.  Se  calcula  el  gasto 
total  sumando  todas  las  cantidades  de 
talón. 

.14/Commodore  World  Noviembre  1984 - 


Lineas  220-300. — lnicializan  el  color 
de  carácter  y  sacan  en  pantalla  un  men¬ 
saje  que  identifica  el  programa. 

Lineas  400-880.— Te  piden  el  nom¬ 
bre  del  fichero.  Si  no  contestas,  o  si 
tecleas  FIN,  el  programa  se  da  por  termi¬ 
nado.  El  programa  intenta  abrir  el  fichero 
en  el  disco.  Si  no  encuentra  el  fichero, 
aparece  el  mensaje  de  la  línea  520,  y  el 
ordenador  te  pide  que  le  confirmes  que 
quieres  crear  un  nuevo  fichero  con  dicho 
nombre.  Sin  embargo,  el  fichero  no  se 
crea  hasta  más  tarde,  después  de  haberse 
introducido  todas  las  transacciones. 

Si  se  encuentra  el  fichero,  las  transac¬ 
ciones  se  introducen  mediante  lectura  en 
las  variables  de  ‘‘arrays’’  definidas  en  las 
líneas  200  y  210.  La  variable  “LINES” 
lleva  la  cuenta  del  número  de  transaccio¬ 
nes  almacenadas  en  la  memoria. 

Líneas  1000-1220  — Presentan  el  menú 
principal  y  aceptan  tu  opción.  A  conti¬ 
nuación  el  programa  realiza  la  función 
elegida.  La  opción  da  por  finalizado  el 
programa. 

Lineas  2000-2440.— Esta  es  la  rutina 
que  suma  las  transacciones. 

Línea  2000.— Se  encarga  de  que  no  se 
introduzcan  más  transacciones  que  el 
máximo  número  permitido  (definido  en  la 
linea  100). 

Linea  2010. — Borra  la  pantalla  y  saca 
en  pantalla  el  número  de  la  nueva 
transacción. 

Lineas  2020-2130. — Representa  los  men¬ 
sajes. 

Linea  2130  — Verifica  las  variables  DR, 
que  está  fijada  en  1  solamente  en  la  rutina 
de  modificación.  Significa  “mensajes  en 
pantalla”,  y  vuelta  a  la  rutina  de 
modificaciones". 

Linea  2180.— Realiza  una  función  enor¬ 
memente  útil.  Si  se  encuentra  por  lo 
menos  una  transacción  en  el  fichero,  la 
fecha  de  la  nueva  transacción  pasa  por 
defecto  a  la  fecha  de  la  última  transacción 
introducida.  Esto  ahorra  tiempo  y  pulsa¬ 
ciones,  dado  que  se  puede  pagar  con 
varios  talones  en  un  solo  día. 

Líneas  2190-2200  — Aceptan  los  datos. 
Si  se  introduce  FIN,  las  transacciones  se 
salvan  en  disco,  y  se  vuelve  al  menú 
principal. 

Líneas  2220-2360.— Aceptan  la  informa¬ 
ción  que  queda.  Esta  información  se  introdu¬ 


ce  mediante  una  rutina  especial  de  entrada, 
empezando  en  la  línea  5000.  Esta  rutina 
demuestra  un  mensaje  subrayado,  que 
indica  la  longitud  máxima  de  los  datos.  Si 
no  se  introduce  nada  para  una  informa¬ 
ción  determinada,  se  muestra  un  sólo 
carácter  subrayado  para  indicar  que  no  se 
ha  producido  ninguna  entrada.  Esta 
información  quedará  en  blanco,  pero  esto 
no  tiene  por  qué  despistarte. 

Además,  cuando  entras  la  descripción 
de  una  transcripción,  no  utilices  la  coma. 
El  lenguaje  Basic  piensa  que  las  comas 
sirven  de  separación  de  los  datos,  y  te 
contestará  con  un  mensaje  de  EXTRA 
IGNORED  si  introduces  una  coma. 

Línea  2400.— Incrementa  por  uno  la 
cuenta  de  las  transacciones. 

Lineas  2410-2430.— Te  preguntan  si  las 
entradas  están  bien  o  no.  Si  contestas  N, 
el  programa  avanza  hasta  la  rutina  de 
edición,  que  empieza  en  la  linea  2540. 

Si  tienes  que  modificar  una  entrada  en 
este  momento,  hazlo  con  cuidado.  Por 
ejemplo,  si  necesitas  borrar  unos  datos 
tienes  que  usar  la  barra  de  espacio  con  la 
tecla  Shift,  los  espacios  normales  no  fun¬ 
cionan.  Parece  que  esto  es  una  pega  del 
intérprete  Basic.  Si  te  queda  alguna  duda, 
utiliza  la  barra  de  espacio  con  Shift,  y  no 
tendrás  ningún  problema. 

Línea  2440.— Borra  la  bandera  de  edi¬ 
ción  y  vuelve  a  la  línea  2000,  para  que 
puedas  entrar  otra  transacción. 

Lineas  2500-2740.— Esta  rutina  es  la 
que  edita  las  transacciones. 

Linea  2500.— Te  pide  el  número  de  la 
transacción.  Si  introduces  un  cero,  las 
transacciones  se  salvan  en  disco  y  el  pro¬ 
grama  vuelve  al  menú  principal. 

Línea  2520.— Se  encarga  de  que  el 
número  de  transacciones  introducido  sea 
válido.  La  linea  2530  fija  la  variable  DP  y 
realiza  la  rutina  de  representación  en  pan¬ 
talla  en  la  linea  2020  de  la  rutina  de  suma. 

Lineas  2540-2670  — Sacan  la  informa¬ 
ción  en  pantalla  y  te  dan  la  opción  de 
modificarla. 

Líneas  2700-2720.— Te  preguntan  si  los 
datos  son  correctos.  Si  contestas  N,  ten¬ 
drás  la  oportunidad  de  repasar  los  datos, 
y  modificar  lo  necesario.  Recuerda  que 
tienes  que  utilizar  la  barra  del  espacio  con 
Shift  para  borrar  los  datos. 

Línea  2730.— Verifica  la  variable  ED1T, 
que  no  se  fija  hasta  llegar  a  la  rutina  de 
sumar.  Si  se  fija,  el  programa  vuelve  a  la 
rutina  de  sumar.  De  no  ser  así,  el  pro¬ 
grama  vuelve  a  la  linca  2500  para  que 
puedas  modificar  más  transacciones. 

Líneas  3000-3670. — Te  permiten  impri¬ 
mir  el  registro  de  comprobación. 

Lineas  3000-3100  —  Representan  un 
menú  sencillo,  que  te  ofrece  la  opción  de 
ver  los  datos  en  pantalla  o  de  imprimirlos 
en  la  impresora,  o  volver  al  menú 
principal. 


GESTION 

COMERCIAL 

MOVIMIENTOS  OE  ALMACEN 
ALBARANES  FACTURAS 
RECIBOS  REMESAS 


RECIBOS  DE 
CUOTAS 

MANTENIMIENTO 
LISTADO  DE  RECIBOS 
LISTADO  ETIQUETAS 


FICHAS  COMERCIALES 

INFORMES 
LIST AOO  INFORMES 
ETIQUETAS 
LISTADOS  VARIOS 
CLIENTES  235 
INFORMES  2000 


ETIQUETAS 

DIRECCIONES 
PRECIOS 
EMBALAJES 
OTROS  PROCESOS 


000pf7 


algunos  de  nuestros  programas  para  los 
ordenadores  personales 

commodore 


iNOVEDAD! 

COMPONENTES 

PNOVEEOORES 


INOVEDAD! 

PELUQUERIAS 


POR  TRABAJO  V  VENTAS 


AVD.  CESAR  AUGUSTO, 72 
Tlfs.23  56  82  y  22  6544 
50003  ZARAGOZA 


Uava  tu  propia  contabilidad 

"  Linea  3120.— Inicializa  el  contador  de 
lineas  en  cero  y  fija  la  variable  Flag,  que 
significa  que  ésta  es  la  primera  página. 

Linea  3140. — Verifica  la  opción  que  ha 
sido  elegida;  si  seleccionas  la  opción  de 
pantalla,  el  programa  avanza  a  la  línea 
3200. 

Líneas  3160-3180. — Presentan  un  men¬ 
saje  en  pantalla  y  abren  el  canal  de  la 
impresora  en  caracteres  mayúsculas  y 
minúsculas. 

Lineas  3200-3290. — Son  utilizadas  tanto 
por  la  opción  de  pantalla  como  por  la  de 
la  impresora. 

Linca  3200. — Fija  el  balance  original 
en  cero. 

Linea  3210. — Inicia  un  bucle  por  todas 
las  transacciones. 

Lineas  3220-3230. — Editan  las  cantida¬ 
des  de  los  talones  y  en  la  cuenta  para 
imprimirlas. 


Linea  3240.— Comprueba  el  final  de 
página  o  pantalla  y  salta  a  la  línea  3500,  si 
es  necesario. 

Línea  3245.— Verifica  la  variable  Ans- 
wer$,  que  podría  ser  fijada  en  “Q”  al  final 
de  la  rutina  de  pantalla  en  la  línea  3540, 
donde  tienes  la  opción  de  terminar  la 
representación  en  pantalla. 

Linea  3250. — Actualiza  el  nuevo  balance 


restando  el  importe  de  los  talones  y 
sumando  el  importe  de  la  transacción  en 
la  cuenta. 

Linea  3260. — Realiza  la  rutina  que 
empieza  en  la  línea  3800,  con  la  finalidad 
de  la  impresión,  edita  el  nuevo  balance  en 
una  variable  llamada  NB$. 

Lineas  3270-3280. — Realizan  las  ruti¬ 
nas  empezando  en  la  3300  ó  3400,  respec¬ 
tivamente,  para  imprimir  la  transacción. 

Linea  3290. — Fin  del  bucle. 

Una  vez  procesadas  todas  las  transac¬ 
ciones,  se  cierra  la  impresora,  si  éste  es  el 
caso,  o  si  no,  te  indica  que  pulses  la  tecla 
Return.  El  programa  vuelve  al  menú 
principal. 

Líneas  3300-3330.— Representan  una 
sola  transacción  en  la  pantalla,  y  se 
decrementa  por  dos  el  contador  de  lineas. 
Cada  transacción  ocupa  dos  lineas. 

Lineas  3400-3470.— imprimen  una  sola 
transacción  en  la  impresora.  Primero, 


1  GOTO  1  ¿id 

2  ! 

3  I 
I 

4  I  PROGRAMA ; CONTABILIDAD •  2-1-64 

I 

5  I  AUTOR  :  JOHN  SCHMOVER.RUN  EEUU 

6  I 

7  I 

8  I 

9  I 

100  MAXSIZE-150  REM  MAX.  DE  TRANSAC 
C IONES 

110  CSCREEN-53280  REM  PANTALLA  DE  C0 
LOR 

120  CHARS*  -  “EUHT3"  REM  COLOR- B 
LANCO 

130  SCREEN-0  REM  COLOR  DE  LA  PANTALL 
A-NEGRO 

140  H0ME*-"£H0M3"  REM  ICURSOR  HOME 3 
150  CLSCREEN*-" CCLR] "  REM  BORRADO  DE 
PANTALLA 

160  L0WERCASE*-CHR*C14) 

1 70  UPPERCASE*-CHR* (142) 

175  CR*-CHk*(13> 

180  SPACE*- " E 40SPC 3 "  REM  40  ESPACIOS 

185  F0RN-1T08  EüUAL*-EuURL*+ — 
— "  NEXTN 

1 90  POKECSCREEN , SCREEN • POKECSCREENf 1 
,  SCREEN 

200  D I MDT*( MAXS I ZE  ). BC* ( MAXS I ZE  3 , DS* 

<MAXSIZE) >  CK*(MAXSIZE  3 

210  D I  MCA$  <  MAXS  I ZE ) , D A* (  MAXS  I  ZE  3 

220  PRINTCLSCREEN*; LOWERCASE*  PRINTC 

HARS* 

230  PR 1 NTHOME* i " [ RVSON  3 " i SPACES* ; 

240  PR I NT " £ RVSON 3 C SPC 3 1 RVSOFF 3C14SPC] 
f  SH I FTC  3  ONTAB I L I DAD  £  1 2SPC  3  f  RVSON  3  £  SPC  3 
I RVSOFF 3", 

250  PR  I  NT  "  [  RVSON  3  "  SPACES*  > 

260  F0RI-4T023 

270  PR I NT " I RVSON  3 [ SPC  3  £  RVSOFF  3 " > LEFT 
* ( SPACES*  ,  38  3 ; " £ RVSON  3  £  SPC  3  £  RVSOFF 3 " 

280  NEXTI 


290  PR I NT ” £  R VSON  3  £  6SPC 3  £  SH I F  TP 3  ULSA l SPC  3 
UNA  £  SPC  3  TECLA  E  SPC  3  PAR A  L  SPC  3  EMPEZAR  E  6SPC 3 

300  GETA*  I FH*= " " THEN3Ü0 
400  PRINTCLSCREEN*, 

410  PR I NT " E  RVSON  3  E  SPC  3  E  SH I FT 1 3  NTRODU 
CE  E  SPC  3  EL  £  SPC  3  NOMBRE  E  SPC  3  DEL  £  ¿PC  3  F I C 
HEROE SPC 3" 

420  PRI NT "[RVSOFF 3 - 

430  CFILE*- . INPUTCFILE* 

440  I FCF I  LE*-" " ORCF I LE*- " END " THEN990 
0 

460  0PEN15, 8, 15, "10" • 0PEN5, 6,5, CFILE 
*+" , S. R" 

480  I NPUT ft 1 5 , EN , EM* , ET , ES 
500  IFENC20THEN700 

520  PRINT-PRINT" £ 2SPC 3ESHIFTH3 MMMM . £SPC3 
ES£SPC3UN£SPC3FICHERÚ£SPC3NUEVO" i  IN 
PUTNW* 

540  IFNW*-"S"GRNW*-"SI "THEN600 

560  CL0SE1 5 • CL0SE5 

580  GOTÚ400 

600  LINES-0 

620  GOTO  1000 

700  PR I N  T ■ PR I NT " C 2SPC 3  £  SH I FTL  3  E VENDO 
E  SPC  DEL  £  SPC  3  F I CHERO . . . ESHIFTE3SPERE" 

710  LINES-0 

720  I NPUT  #5 , QA* , OB* , QC* , ÚD* , GlE  * , QF$ 

740  RS-ST 

760  LINES-LINES+1 

780  DT* < L INES 3-QA*  BC*< LINES 3-QD* 

000  DS* ( L I NES  3 -ÚC* ' CK*  i  L 1 NES  t -ÚD* 

820  CA*( LINES >-0E*  DA*(LINES;-QF* 

860  IFRS-0THEN720 
860  CL0SE5 

1000  PRINTCLSSCREEN* 

1020  PR I NT " £  RVSON  3  C  2CRSRD  3  E 1 3SPC 3  £  SH I FTM  3 
ENUE 2SPC  3ESHIFTC3 ONTAB ILI DAD£  9SPC  3  E  RVSOFF  3 

1040  PRINT  PRINT : PRINTTABC8) i " 1 E SPC 3 
- £  SPC  3  £  SH I F  TA  3  NAD I R  £  SPC  3  TRANS ACC I ONE 
S" 

1060  PRINT • PRINTTABv8) , “2ESPC3-ESPC3 
£  SH I FTM  3  OD I F I  CAR  £  SPC  3  TRANSACC I ONES " 

1100  PRINT- PRINTTABC83 ; "3£SPC3-£SPC3 
ESHIFTI 3MPRIMIRESPC3REGISTROS" 

1120  PRINT  PRINTTAB(83 ¡ "4ESPC3-ESPC3 
£SHIFTC30NSULTA£SPC3S0BRE£SPC3EL£SPC3 
BALANCE" 


16/Commodore  World  Noviembre  1984 


cada  dato  está  rodeado  con  el  número 
correcto  de  espacios  y  se  almacena  en  las 
variables  provisionales  de  A$  a  F$,  para 
que  cada  dato  aparezca  en  su  columna 
correspondiente.  La  línea  3460  decre- 
menta  el  contador  de  lineas  por  uno  des¬ 
pués  de  imprimir  los  datos. 

Lineas  3500-3670. — Aquí  termina  la 
rutina  Página/Pantalla.  La  línea  3500 
comprueba  para  ver  si  la  impresora  fue 
elegida.  Si  asi  fue,  el  control  se  transfiere 
a  la  linea  3600.  De  no  ser  así,  la  linea  3505 
verifica  la  variable  Flag.  Si  ésta  se  ha 
fijado  en  1,  significa  que  ésta  es  la  primera 
vez  que  se  ejecuta  esta  rutina,  y  no  hace 
falta  pulsar  la  tecla  Return,  y  el  control 
vuelve  a  la  línea  3240.  La  linea  3510  te 
indica  que  pulses  la  tecla  Return,  o  que 
pulses  la  tecla  Q  para  salir. 

Si  pulsas  la  tecla  Q,  el  control  vuelve  a 
la  línea  3240.  De  no  ser  asi,  la  rutina 
borra  la  pantalla,  representa  el  titulo,  fija 
el  contador  de  líneas  en  24  y  vuelve  a  la 
línea  3240.  Las  lineas  3600  a  3670  contie¬ 


nen  la  rutina  de  fin  de  página  para  la 
impresora. 

Linea  3600.— Verifica  la  variable  Flag, 
igual  que  la  linea  3505,  y  salta  el  FORM 
FEED  si  se  ha  fijado.  De  esta  forma  no  te 
gastas  una  hoja  de  papel  la  primera  vez 
que  se  ejecuta  esta  rutina. 

Línea  3605. — Envía  el  comando  de 
principio  de  página  a  la  impresora.  Si  la 


impresora  no  soporta  este  comando,  o  si 
no  dispone  de  formatos  continuos,  necesi¬ 
tarás  alguna  codificación  adecuada. 

Resulta  bastante  sencillo  simular  el 
principio  de  página  si  imprimes  el 
número  correcto  de  lincas  en  blanco  que 
obliguen  a  la  impresora  a  avanzar  hasta  el 
principio  de  la  página  siguiente. 


Linea  3650. — Fija  el  contador  de  lineas 
|  en  55. 

Lineas  3660. — Fija  la  variable  AnswerS 
en  nulo.  AnswerS  se  puede  fijar  en  "Q” 
solamente  en  la  rutina  de  representación 
en  pantalla,  y  no  es  aplicable  a  la  rutina 
de  impresora.  Aquí  se  fija  en  nulo,  dado 
que  la  línea  3245  lo  comprobará  cuando 
sales  de  esta  rutina. 

Líneas  3800-3880.— Esta  rutina  toma  el 
valor  de  la  variable  NBAL  y  crea  una 
nueva  variable  llamada  NBS.  A  continua-  ^ 


1125  PRINT  PRINTTftBC8)> "5[SPC3-[SPC3 

2310  LN-1 1  SZ-9  GOSUB500O 

[SHIFTFl3NFlLISISCSPC3DEL[SPC3PRESUPUE 

2320  IFEí«"[CGMM03"THENEi»" " 

STO" 

2330  CFIí(LINESfl>»Eí 

1130  PRINT  :  PRINTTFiBCS)  /  ''ÉCSPC3«CSPC3 

2340  LN-13 : SZ»9 : GOSUB5000 

CSHIFTClflNCELRR" 

2350  I F Eí * " [ COMM0  3 " THENEí = " " 

1 1 40  PR I  NT " [ 4CRSRD 3 [ 8SPC  3 [ SH I FT 1 3 NTR 

2360  BHÍ CLINES+1 >CEÍ 

OBUZCFi  [  SPC  3  SU  [  SPC  3  OPC I ON " ,  : INPUT  OP 

2400  LINES-LINES+1 

1160  IF  OP  ■  6  THEN  CLOSE  15  GLOSE  5 

24 1 0  PR I NT " [ HOM  3 ( 1 6CRSRB  3 [ SH I FTE  3  Sí  SPC  3 

: GOTO9900 

CORRECTO?"/ 

1180  1FÜP<1OROP>5THEN1000 

2420  GETFií  IFHíO"S"HNDHÍ^>"N"THEN24 

1 200  ONOPÜÜSUB2000 i ¿500 , 3000 , 4300 , 45 

20 

00 

2430  I Fflí» " N “ THENQN»L INES  EBIT»1  GOS 

1220  GOTO 1000 

UB2540 

2000  I  FL I NES+ 1 >MRXS I ZETHENRETURH 

2440  EDIT«0 : GOTO2000 

2010  PRIÑTCLSCREENÍ  < " CRVSÜN  3 1 SH1FTT  3 

2500  PR I NT CLSCREENí i " [RVSON 3 1 SHIFTN3 

RFiNSRCC I ON C SPC 3CSHIFTN3 UÍ1ER0 ;  [ SPC 3 " > 

UMERO  C  SPC  3  DE [ SPC  3  TRhNSHCC 1 0N7C  SPC  3  0 [ 3CRSRL 3 

L1NES+Ü "CRVS0FF3" 

"<  ■■  INPUTQN 

2020  PR I NT " [ CRSRB  3 [ R VSON  3 [ SH I FTF  3  ECH 

2510  IFÜN«0THENGÜSUB40O0  RETURN 

R . [RVSOFF 3" 

2520  I F ÚN<0ORÜN>L I NEST  HEN2500 

2030  PR I NT " C  R VSON  3 [ 1 4SPC  3  C  RVSOFF  3 “ 

2530  DP=1  GOSUB2020  DP=0 

2040  PR I NT " C RVSON 3CFIT .  BE  [  SPC  3  PRESUP . 

2540  PRINTHOMEÍ/ "[2CRSRD3" < 

[RVSOFF 3" 

2550  PRINT" [ 14CRSRR37CSPC3 " <  DI  i  CON) 

2050  Pk I NT ” [ RVSON 3  C 1 4SPC  3 [RVSOFF 3 " 

2560  PRINT"[CRSRB3[ 14CRSRR3 ^[SPL3"/B 

2060  PR 1 NT " [ RVSON 3 [SHIFTB3ESGRIPCI0N 

Cí(QN> 

[SPC 3.. [RVSOFF 3" 

2570  PRINT" [CRSRB3 [ 14CRSRR 3  ?[SPL3 " - D 

20 70  PR I NT " [ RVSON  3Í 14SPCJÍ RVSOFF 3" 

Sí (QN> 

2060  PR I NT " [ RVSON 3 [ SH I F  TC 3 HEGUE [ SPC 3 

2580  PR I NT " [ CRSRB 3 [ 14CRSRR 3  ? [ SPC  3 " 3  C 

NÍC0MMV3 . [RVSOFF  3" 

KÍ<QN) 

2030  PR  I  NT  "  [  RVSON  3  [  1 4SPC  3  [  RVSOFF  3  " 

2530  PR I NT " [ CRSRB  3 [ 1 4CRSRR 3  ?  C  SPC  3 " » C 

2100  PRINT"[RVS0N3 [SHIFTC38NTIBRDÍSPC3 

flí(ON) 

[SHIFTC3HEQ. [RVSOFF  3 " 

2600  PR I NT " [ CRSRB  3 [ 1 4CRSRR 3  ?[ SPC  3 " / B 

2 1 1 0  PR 1 NT " [ R VSON  3 [ 1 4SPC  3  C  R V30FF  3 " 

HítGN; 

2120  PRINT"  [RVSÚN3  [SHIFTS3FILBÜÍSPC3CSHIFTÑ3 

2610  PR  I  NTHÜflEí  ¿  "  [  2CRSPB  3  "  . 

CTUFiL. . CRVS0FF3" 

2620  PR I NT " [ 1 4CRSRR Vi  I NPUTDTí C QN 3 

2130  IF  BP*  1 THENRETURN 

2630  PRINT”[CRSRD3[14CRSRR3"/  INPUTB 

2180  I  FL  1 NESO0THENPR1  NTHUMEí  /  "[2CRSRD3 

Cí<ON) 

[14CRSRR3?[SPC3H;BT*aiNES> 

2640  PRINT" [CRSRD3Í14CRSRR3".  INPUTB 

2130  PRINTHOMEÍ/ " [ 2CRSRD3 [ 1 4CRSRR 3 " - 

SíCQN) 

¡  INPUTEí 

2650  PR I NT " C CRSRB 3 C 1 4CRSRR 3 " /  INPUTC 

2200  IFEÍ-"  "ORLEFTí <Eí /  3>-"FIN"THENG 

Kí(ON)  . 

OSUB4000 : RETURN 

2660  PRINT" ÍCRSRB3Í14CRSRR3"/  INPUTC 

2210  BTí (LINES+1 )=Eí 

F)Í(ÚN) 

2220  LN«5:C0-15  -SZ-3  C»OSUI;bu00 

2670  PRlNT" [CRSRB 3 [ 14CRSRR3" /  INPUTB 

2230  I FEí  ■» " [ C0MM8 3  * THENEí» " " 

2240  BCíCLINES+l)*Eí 

Flí  (ÚN> 

2700  PRINTHOMEÍ i »[16CRSRB3[SHIFTE3S[SPC3 

2250  LN=>7 '  SZ»20 ;  GOSUB5000 

CORRECTO?" i 

2260  I FEí-  "  í  COMMli  3  "  THENEí- "  " 

2710  GETFIÍ  I  FRÍO  "  S  "  HNBFií O  "  N  "  THEN27 

2270  DSí (LINES+1 >»Eí 

10 

2280  LN=9  SZ-4 : GOSUB5000 

2720  IFÑía"N" THEN2540 

2290  IFEÍ-"  [COMMli  3  "THENEí-"  " 

2730  I FED I T= 1 THENRETURN 

2300  CKÍCLINES+13-EÍ 

2740  GOTO2500 

--  Commodore  World  Noviembre  1984/1 7j 


Uava  tv  propia  contabilidad 

ción  las  lineas  3810  a  3830  examinan 
NB$,  buscando  un  punto  decimal.  Si  éste 
se  encuentra,  el  control  se  transmite  a  la 
linea  3830.  Si  no  se  encuentra  un  punto 
decimal,  '.00"  se  agrega  a  NB$,  y  se  salta 
a  la  línea  3860.  La  linea  3850  añade  un  0 
adicional  a  NB$,  si  es  necesario.  La  linea 
3860  rodea  NB$  de  espacios  para  que 
adquiera  una  longitud  de  nueve  caracte¬ 
res,  la  longitud  correcta  para  imprimirse. 

Líneas  4000-4120  —  Esta  rutina  salva 
las  transacciones  en  disco.  La  linea  4030 
crea  un  nuevo  fichero  vacío  para  escribir. 
Las  líneas  4040  a  4060  repasan  las  tran¬ 
sacciones  y  las  escriben  en  el  fichero. 

Lineas  4300-4380  —  Repasan  las  tran¬ 
sacciones,  restándoles  todos  los  importes 


de  los  talones  y  sumándoles  las  cantida¬ 
des  depositadas  para  poder  calcular  el 
balance  final.  El  balance  se  representa  en 
la  linea  4350. 


Lineas  4500-4730  —La  rutina  del  anᬠ
lisis  del  presupuesto.  Esta  rutina  te  pide  la 
categoría  del  presupuesto  que  quieras 
analizar  en  la  linea  4530.  Al  fijar  E$  en 
“fin”  antes  de  entrar  los  datos,  la  res¬ 
puesta  por  defecto  es  “fin".  De  modo  que 
si  pulsas  la  tecla  Return  sin  haber  entrado 
ningún  dato,  el  programa  sabe  que  quie¬ 
res  que  termine,  y  te  devuelve  al  menú 
principal. 

Línea  4550  — Fija  NBAL  (el  total  de 
todos  los  talones)  en  cero.  También  fija 
en  cero  ACCUM,  la  cantidad  del  dinero 
gastado  en  esta  categoría. 

Lineas  4570-4600. — Repasan  las  trans¬ 
acciones,  acumulando  NBAL  y  ACCUM. 

Linea  4610. — Le  quita  el  signo  negativo 


3000  PRINTCLSCREENi, "[5CRSRD]" 

3530  INPUTÑNSUERi 

3020  PRINTTÑBO07, "PCSPC J-CSPCTMUEiT 

3540  IFÑNSWERI="Ú" THEMPE 1URN 

RÑC  SPC  3  EN  C  SPC  3  PÑN  T  ÑLLÑ  “ 

3550  PRINTCLSCREENi . " [RVSÜN3 C 3PC3 C3HIFTF3 

3030  PRINTTÑBC 10> - " I CSPCT^CSPCTSÑLIB 

ECHRC3SPC3  CSHIP'TCTÑT  [  SPC3l  HEQC23PC  3  1 

Ñ i SPC  3 Ñ  f  SPC ] I HPRES0RÑ " 

3040  PRINTTÑBCIU),  "ÜCSPOCSPCHSHIFTV) 

MPÜRTE  C4SPC 3 C  SH IFTD3EP03 I TÚCRVSUF F  J " 

OL VERI SPC T ÑL  C  SPC I MENU " 

3560  LCNT=24 

3050  PR I N T " [ 2CRSRB ] " - ÍHlK  1 0 > . " C SH 1 F TI J 

3570  RETURN 

Ñ TRODUZCÑ [ SPC ] SU [ SPC  JOPC I ON" ,  INPUTi 

3600  IFFLÑG=1THENFLÑG«=0  GOTUJ610 

Q* 

3605  PRINTCHR1' 127  REM  SÑLTÑR  ÑL  PR1 

3000  IFSQSO" P " ÑNBSGiiO " I "ÑNDSQi O " Q 

NCIPIÜ  BE  PÑGINÑ 

3610  PRINTTÑB(26)i  "C4SPC3 C 3HIFTC 3 CSPC3 

3100  IFSQÍ="Q"THENRETURN 

CSHIFTG3CSPC3C3HIFTNTCSPC3CSHIF  TT  3 [SPC 3 

3120  LCNT =0  FLÑb= 1 

CSHIFTÑ3  CSPC3CSHIFTB3  CSPC3  CSHIFTI  ]  CSPC] 

3130  ÑNSWERi»" " 

CSHIFTL3  CSPC3  [SHIFTI  3 C SPC 3 CSHIF  TB3CSPC3 

CSHIFTÑ3CSPC3CSH1FTB3" 

3160  PR I  NTCLSCREENi ,  "  C 5CRSRD ] C 1 0SPC 3 

3620  PRINTTÑB<¿7 ,  "CSHIFTF3CSHIFTE3C3HIFTC3 

CSHIFTH3  CSHIF  TR3  C3SPC3  C  3HIFTC3  CSHIFTR3 

[SHIFTT 3  C2SPC3  CSHIFTC 3  CSHIF  ÍHjCSHlFTE) 

CSHIFTÚ3  C2SPC3  CSHIFTB3  CSHIFTE3  CSHIFTS3 

CSHIFTC3CSHIFTR3  CSHIFTI  3  CSHIF  TP3  CSHIFTC3 

CSHIFTI 3  CSHIFT03CSHIFTN3CT  ,';PC  3  CSHIFTI  ] 

3230  BÍ=R I GHT $ C  "  [  1 0SPC ] "♦ DHi <  N  7 , 9  7 

CSHIFTM3  CSHIFTP 3  CSHIF TQ 3 CSHIF TR 3 [SHIFTT  3 

3240  IFLCNK5THENGGSUB35U0 

CSHIFTE3CSPC3", 

3625  PRINT" [SPC 3 CSHIFTB3  CSHI FTE3 CSHIFTP 3 

CSHIFT03CSHIFTS3CSHIFTI3CSHIFTT3CSHIFTÚ3 

C3SPC3 CSHIF  TB3CSHIFTÑ3C3HIFTL3CSHIFTR3 

í SHIFTN3  CSHIFTC3CSHIFTE3” 

3270  I FSUi* " P " THENGÜSUB330O 

3630  PRINTEÜUÑLÍ 

3280  I FSGli* " I " THENGO3UB340Ú 

3640  PRINT "CSPC]” 

3230  NEXTN : IFSQi=" I " THENPRINT  #4, "CSPCÍ 

3650  LCNT=35 

" : CL0SE4  RETURN 

3660  RNSUERi*”" 

3292  PRINT"  CSH1FTPIULSÑC3PCHSHIFTRJ 

3670  RETURN 

CSHIFTEHSHIFTTHSHIFTU]  CSHIFTRT  CSHIFTN3 

3800  NBi=STRí ■  INT<NBRL*100+.Ü057*. 01 

", : INPUTÑNSUERi 

3295  RETURN 

7 

3810  FOR>:=lTOLEN'.N£ii  > 

3300  PPINTBTÍ(N)¿TÑBs97,  BCÍ<N7,TÑB<1 

3820  IFMIBÍ<NBÍ,X, 17-". "THENP=X  GOTO 

37 , CKt(N7 , TÑB( 187  7  Ñi, "C3SPCJ", Bi 

3850 

3310  F'RINTTÑBtS) ;  BSÍCN7 ;  TÑBÍ307  "  CRV3ÜN3 

3830  NEXTX 

“ [RVSClFF]" 

3840  NEÍ=NBi+".U0"  GOTG3860 

3320  LCNT*LCNT-2 

3850  IFP=LEN<.N£$ 7 - 1 THENNBi-l lBi+"0” 

3330  RETURN 

3860  NBi  =R  1  GHTi  (  *  [  10SPC  3  "  -TIBÍ ,  9  > 

3400  Ci**LEFTi(BTÍ<N7  +  "C10SPCI", 10) 

3680  RETURN 

3410  BÍ=LEFmBCÍ(N7  +  ,’C53PCr\57 

4000  PRINTCLSCREENi 

3420  ES=LEFTÍ<CKÍ(N7+" C6SPC3" ,6) 

4020  PRINT " C8CRSRB3C9SFC3CSHIFTS3ÑLV 

3430  Fi»LEFTi f. DS i C  N7  +SPÑCEÍ , 24 ) 

ÑNBCl , [ SPC  3  C  SH I FTE  3  SPERE  " 

3440  PR I NTCi , Bi , Ei , Fi ,  Ñi ;  "  [ 2SPC 3  " ,  Bi 

4030  CL0SE5  0PEN5, 8. 5,  "00  :  "  t-CFILE*+" 

;  "C2SPC3"  ,NBt 

,S,W" 

3460  LCNT=LCNT-1 

4040  FClRN=lTOLIN£S 

3470  RETURN 

4050  PRI NT#5, BTiCN  7 ; CRi , ECi , BL  i <  N  7 ; C 

3500  IF$G*="r,TH£HGOTO3600 

Ri ,  BSi  < N7 ;  CRÍ3  CK»<N7 ,  CR*  •  t  H4  N  > ,  CkS , 

3503  IFFLÑG=1THENFLÑÚ=0  G0T03556 

BÑiCN) 

3510  PR I NTHOMEi ; " 1 22CRSRD 3 " , 

4060  NEXTN 

3520  PR I NT " C  SH I FTP  3  ULSÑ  C  SPC  3  C  SH I FTR  3 

4100  CL0SE5 

CSHIFTE3  CSHIFTT3CSHIFTU3CSHIFTR3  CSHIFTN3 

4120  RETURN 

CSPC30CSPC3  CSHIFTGl3CSPC3PÑF..'ÑtSPC3CÑN 

4300  PRINTCLSCREENi, " C 3CRSRB J C 2SPC KSHIFTC3 

CELÑR" ; 

OflPUTÑNBO. . .  C SPC JCSHIFTEJ SPERE.  " 

18/Commodore  World  Noviembre  1984 


¡INCREIBLES  TARJETAS 
PARA  COMMODORES  64  Y  VI 020 
DE  80  COLUMNAS! 

LA  TARJETA  DE  64K  ES  LA  PERFECTA  COMBINACION  PARA  LA  TARJETA  DE  40/80  COLUMNAS: 

-  Puede  escoger  entre  22/40/80  columnas  y  obtiene  31743  bytes  libres'!' 

-  El  sofware  del  EPROM  de  la  tarieta  le  permite  utilizar  todos  los  comandos  de  ficheros  (OPEN.  CLOSE,  PRINT.  INPUT,  GET  SAVE 
and  LOAD)  con  los  31232  Bytes  de  Memoria  ■•oculta",  lo  que  produce  la  sensación  de  qué  hay  8  cassettes  super  rápidos 
conectados  a  su  Vic*20  Imagínese  menos  de  1  segundo  para  guardar  28  K!M 


DISTRIBUIDORES  PARA  TODA  ESPAÑA 


•  Tarjeta  COMMODORE  64 
80  columnas 


•  Tarieta  VIC-20  40/80  columnas 


PEDIDOS 


•  Tarjeta  VIC-20 
Ampliación  de  memoria 
64  K -  RAM 

•  Slots  de  expansión 
para  VIC-20  y  64 

de  2  y  5  para  conexión 
de  tarjetas 


Distribuidores 

Y  PARTICULARES 


C/Tusset,  8  -  ENTRESUELO  2a 
Teléf.:  218  02  93 
08006  BARCELONA 


FEPPE  -ÍÍIOPET  /. fl. 


¡ATENCION! 

SOFTWARE  80  COLUMNAS 


E.SIOS  programas  requieren  las  tarjetas  distribuidas  por  FERRE  MORET 
S  A  Para  el  VIC-20.  aunque  los  programas  luncionan  con  un  mínimo  de 
16K.  están  disertados  para  su  utilización  con  la  Tarjeta  de  64K  RAM 
Capacidad  de  almacenaje  ilimitada  Todos  los  programas  se  venden  con 
un  manual  explicativo  en  castellano. 

AGENDA  DOMESTICA 
Y  DE  NEGOCIOS  (REF.  ADD4080C) 

Incluye  una  función  de  búsqueda  que  identifica  la  totalidad  o  parte  de  los 
nombres,  direcciones  o  números  de  teléfono,  es  decir,  el  sistema  permite 
identificar  un  nombre,  dirección  o  teléfono,  aunque  únicamente  se 
recuerde  parte  de  la  información  Si  el  usuario  no  recuerda  una  dirección 
concreta  llamando  el  nombre  de  la  población,  obtendré  todas  las 
direcciones  de  esa  población 

CONTROL  STOCK  40  COL  (REF.  st40C) 

CONTROL  STOCK  COL.  (REF.  st80C) 

Posee  una  función  de  búsqueda  que  permite  visualizar  productos 
concretos,  especificando  el  producto,  su  descripción,  lugar  de  almacéna¬ 

te.  proveedor,  dirección  del  proveedor,  código  de  identificación  del 
producto,  precio  de  coste,  precio  de  venta,  cantidad  (en  paquetes  caías 

etc )  valoración  del  stock,  niveles  máximos  y  mínimos  de  stock  Si  además 

se  dispone  de  impresora,  se  pueden  obtener  listados  de  productos 
específicos  y  listados  de  lodo  el  almacén 

PEDIDOS,  ALBARANES, 

FACTURAS  (REF.  IDO4080CP) 

Se  precisa  la  tarjeta  de  64K  RAM  impresora  El  programa  permite  imprimir 
encabezamiento  con  el  nombre  de  la  Empresa  y  su  dirección  y  se  puede 
elegir  que  el  documento  sea  una  Factura.  Albarán  o  Pedido  Otros  detalles 

del  encabezamiento  son  número  de  factura,  fecha,  número  de  pedido  dei 

cliente,  referencia  del  cliente,  etc  El  programa  permite  la  introducción  de 
vanos  ITE's.  especifica  el  producto,  descripción  cantidad,  precio  antes  de 
impuestos,  precios  con  impuestos  incluidos,  gastos  deenvío  etc  Numera 
cíón  automática  de  los  documentos  Permite  nacer  copias 


DIETARIO  DOMESTICO 
Y  DE  NEGOCIOS  (REF  HBD80CDP) 

Funciona  con  Cassette  y  Unidad  de  Disco  El  programa  pide  la  techa  e 
identifica  cualquier  entrevista  concertada  para  ese  día,  detallando  con 
quién  es  la  entrevista,  motivo  de  la  misma,  hora  y  lugar  de  la  reunión, 
duración  de  la  reunión,  etc 

Permite  la  búsqueda  diaria  o  mensual  para  identificar  reuniones  por  la 
techa,  o  lugar  de  reunión,  o  persona,  tanto  en  el  pasado  como  en  el  futuro, 
y  además  visualiza  un  calendario 


CONTROL  DE  ALMACEN 
A  80  COL.  (REF.  ST80CDP) 

Los  datos  se  pueden  almacenar  en  cassette  o  Unidad  de  Disco  Se 
incluye  la  descripción  de  los  productos,  su  referencia  o  numero,  cantidad 
precio  de  compra,  precio  de  venta,  niveles  máximo  y  mimmo  de  existen 
cías,  pedidos  mínimos  exigidos  por  los  proveedores  nombre  y  dirección 
del  proveedor  ele  Se  dispone  de  una  función  de  búsqueda,  que  permite 
Visualizar  todo  el  almacén  productos  cuya  cantidad  exceda  la  máxima 
autorizada,  productoscon  existencia  por  debato  del  nivel  mínimo  requeri¬ 
do.  salidas  de  almacén,  valor  del  stock,  precios  y  márgenes 


FICHERO  DE  PERSONAL 
A  80  COL.  (REF.  PRF80CDP) 

Se  necesita  impresora  El  programa  incluye  el  nombre,  dirección,  teléfo¬ 
no  edad,  techa  de  nacimiento,  numero,  sexo,  estado,  número  de  Seguri¬ 
dad  Social.  Cualificaciones.  Historial  de  empleo  Estudios  sueldo,  funcio¬ 
nes  que  realiza  actualmente,  programas  de  traimng  a  los  que  ha  asistido 
etc  Se  pueden  visualizar  todos  los  datos  o  seleccionar  los  que  se  desean 
mediante  la  utilización  de  una  función  de  búsqueda  Excelente  para 
selección  de  personal  ya  que  permite  identificación  por  nombre,  pero 
también  se  puede  buscar  por  una  cualificación  o  característica  concreta, 
por  la  edad,  experiencia,  etc 


Lleva  tu  propia  contabilidad 

| . a  ACCUM,  si  lo  tiene.  De  esta  forma  tu 
análisis  contiene  solamente  números  posi¬ 
tivos,  que  serán  más  fáciles  de  compren¬ 
der.  La  mayoría  de  la  gente  se  confunde 
con  números  negativos. 

Lineas  4620-4660.— Representan  la  can¬ 
tidad  total  de  los  talones  y  la  categoría  del 
presupuesto.  La  subrutina  en  la  línea 
3800  es  llamada  varias  veces  para  editar 
los  números  para  su  representación. 

Lineas  4670-4680. — Calculan  el  por¬ 
centaje  que  representa  la  categoría  del 
presupuesto  comparado  con  la  cantidad 
total  de  todos  los  talones  extendidos 
durante  el  mes,  representándolo  en  la 
línea  4700. 

Líneas  5000-5350.— Esta  rutina  sirve 


para  entrar  los  datos  que  colocan  el  cur¬ 
sor  en  la  pantalla  y  presenta  un  mensaje 
subrayado  para  que  puedas  ver  la  longi¬ 
tud  posible  de  los  datos.  La  variable  LN 


representa  el  número  de  linea;  CO  repre¬ 
senta  el  número  de  columna;  SZ  repre¬ 
senta  el  tamaño  de  los  datos.  La  línea 
5180  acepta  los  datos  en  la  variable  ES. 
Las  líneas  5181  a  5185  borran  los  subraya¬ 
dos  de  E$  después  de  que  este  haya  sido 
entrado.  Las  lineas  5190  a  5330  borran  el 
espacio  donde  antes  se  encontraban  los 
mensajes  subrayados;  a  continuación  los 
datos  recién  entrados  se  vuelven  a  repre¬ 
sentar  aquí. 

Lineas  9900-9920.— Esta  es  la  salida  del 
programa.  Se  borra  la  pantalla  y  vuelve  a 
representar  las  letras  en  mayúsculas. 


♦♦♦♦♦♦♦♦♦♦♦ 


4310  NBFIL-0 
4320  F0RN=1T0LINES 

4330  NBhL-NBHL-VHL ( Cfi* <  N  )  >  +VHL ( BFlí <■  N 

>> 

4340  NEXTN 

4350  PR I NTCLSCREEN* , " C 3CRSRD 3 £ 2SPC 3  £SHIFTE3 
L  C  SPC  3  NUEVO  £  SPC  3  E  SH I F  TB  3HLHNCE  £  SPC  3  E 
SESPC3. . . " ;NBftL 

4300  PR I NT " £ 8CRSRD3 C 2SPC ] t SH I  FTP ] ULS 
AESPC3  ESHIFTR3  ESHIFTE3  ESHIFTT3  ESHIFTU3 
ESHIFTR3ESHIFTN3ESPC3PHRRESPC3SEGUIR 

4370  PRINT“C2SPCr;  IMPUTO* 

4330  RETURN 

4500  PR I NTCLSCREEN*  >  " E5CRSRD3 " - THB<1 
2  >  1  "  E RVSON 3  E  SH  I  FTFl  3 NAL I S I S  £ SPC 3 DEL C SPC 3 
PRESUPUESTO" 

4510  PRINTTRBE  123 ¡ " - 

- " :pRIWT 

4520  PR  I  NT TÑB  <.  7 3  i  "  £  SH  I FT 1 3 NTRODUZCfi  E  SPC  3 

CRTEGORIR" i 

4530  E*="END"  INPUTE* 

4540  I FE*= " END " THENRETURN 

4550  NBRL=0 : ÑCCUM=0 

4530  PRINT" C3CRSRD3 " ; ThB<9>; "ESHIFTE3 

SPERE  E  SPC  3  POR  E  SPC  3  FFi  VÜR  " 

4570  F0RN-1T0LINES 

4580  NBÑL*NBflL+VFlL<C 8$<.N) ) 

4590  I FBC*  <  N ) =EÍ  THEN  3CCUM*FlCCUt1-VftL  < 

Ch*(N>  ,'+VHLl.DR*<  N>> 

4600  NEXTN 

4610  (HCCUM-ftBSCftCCUri) 

4620  GOSUB3800 

4625  PR I NTCLSCREENÍ , " [RVSON 3 ESHIFTRJ 
NHL I S I S  f  SPC  3  DEL  C  SPC  3  PRESUPUESTO  C  SPC  3 
PhRRESPC3";E* 

4630  PR  I  NT  "  C  2CRSRD  3  C  SH  I FTT  3  OTFiL  C  SPC  3 
DEESPC3  ESHIFTC3HEQUES. . . " <  NB* 

4640  SV=NBHL  •’  NBHL=hCCUM  :  GOSUB3300 
4650  PR I NT " t  SH I FT 1 3  MPORTE  t  SPC  3DE  C  SPC  3 
LRESPC3CRTEG0RIR.  •  " y NB* 

4660  NBHL-SV 

4670  IFNBHL=0THENPCT=0  GOTO4700 
4e.80  PCT=*INT (RCCUM/NBhL#  1 00+ . 5 ') 

4700  PRINT" [CRSRD3XCSPG3SOBRECSPC3TO 
DOS E  SPC  3  LOS  f  SPC  3  E  SH I FTC  3  HEQUES . " ; PCT 

4720  PRINT" E14CRSRD3ESHIFTP3ULSEESPC3 
CSHIFTR3  CSHIFTE3  CSHIFTT3CSHIFTU3CSHIFTR3 
[SHIFTN3 " i ■ INPUTRNSWER* 

4730  GÜTO4500 
5000  PRINT" EH0M3 " . 

5020  IF  LN=1  THEN5050 
5030  F0RN=2T0LN  PRINT " [CRSRD3 " . 

N 

5050  IFCO-1THEN5100 


:  NEXT 


5060  F0RN-2T0C0  PR I NT " [ CRSRR 3", ■ NEXT 
:NEXT 


3100  PRINT"?ESPC3"; 

3120  F0RN«1T0S2  PRINT" [COMM03 


5123  PRINT"£H0M3"< 

5130  I FLN= 1 THEN5 1 50 

5140  F0RN-2T0LN  PRINT" E CRSRD 3' 

N 

5150  IFCO-1THEN5180 

5160  F 0RN*2T0CG ; PR I  NT  "  E CRSRR  3 ' 

N 

5180  INPUTE* 

3181  I-LEN(EÍ) 

5182  F0RN=>  I T02STEP- 1 

5183  IFt1ID*(E*y  Ny  1  )0"  EC0MM4  3 
0 ! G0T05185 

5184  E*«LEFT*(E*y  N-l ) 

5185  NEXTN 

5190  PRINT"  CH0113 "  > 

5200  I  FLN= 1 THEN5220 

52 1 0  F0RN=2T0LN • PR I NT “ E CRSRD 3 " 

N 

5220  IFCO-1THEN5250 

5230  F0RN-2T0C0  PR I NT " C  CRSRR  3 " 

N 

5250  PRINT “f2CRSRR3"y 
5260  PRINTLEFTiCSPflCEtiSZ) i 
5270  PRINT"EH0M3" , 

5280  I FLN* 1 THEN5300 

5290  F0RN=2T0LN  PRINT"£ CRSRD 3 " 

N 

5300  IFCO=1THEN5330 

5310  F0RN*2T0C0: PRINT" £ CRSRR 3" 

N 

5330  PRINT" £2CRSRR3";EÍ 
5350  RETURN 

9980  PRINTCLSCREEN*; UPPERCRSE* 
9920  END 


y  NEXT 
,  NEXT 


NEXT 
:  NEXT 


, : NEXT 
; : NEXT 


20/Commodore  World  Noviembre  1984 


brothec  ep-44 

“Quien  hace  cosas  buenas,  hace  buenos  amigos" 

La  primera  portátil  electrónica  del  mundo  con  capacidad  de  TELECOMUNICACION 


RECEPCION 


Conectada  a  una  Computadora  Personal  actúa  como  impresora. 

TRANSMISION 


Transmite  datos  que  pueden  ser  impresos  en  otras  unidades. 


ACOPLADOR  ACUSTICO 


Conectada  a  un  acoplador  acústico  se  convierte  en  un  completo  terminal  de 
comunicaciones. 


•  Terminal  Input/Ouput. 

•  CONECTABLE  A  ORDENADOR  Interface  RS  232C. 
(incluido) 

•  Conectable  a  otros  equipos  (impresoras,  máquinas  de 
escribir,  etc.). 

•  Teleimpresión  por  acoplador  acústico. 

•  Pantalla. 

•  Calculador  incorporado  con  impresión. 

•  Gran  cantidad  de  escritura. 

•  Totalmente  silenciosa 


OPCIONES: 

Cables  de  conexión  para:  COMMODORE  64/VIC-20 
SINCLAIR  ESPECTRUM 
NEW  BRAIN,  etc.,  etc. 


TENGA  SU  IMPRESORA  Y  MAQUINA  DE  ESCRIBIR  POR  EL  MISMO  PRECIO 


SIMO 


STAND  N*  D-278 
PABELLON  XI 


Viaje  al  centre 
de  tu  Commodore  (ll) 


Philip  I.  NELSON  (RUN  EEUU) 

Traducido  por  Valerie  SHANKS  y  adaptado  por  Alvaro  1BAÑEZ 


Terminamos  este  viaje 
por  el  interior  de  la  memoria 
de  tu  ordenador 


Continuando  el  viaje  por  el  centro  de  tu  Commo¬ 
dore  en  la  segunda  parte  de  este  artículo,  podrás  ver  el 
sistema  operativo  de  la  ROM,  las  zonas  reservadas 
para  el  color,  sonido  y  el  manejo  de  los  periféricos, 
echaremos  un  vistazo  a  los  Pokes,  Peeks  y  el  cálculo 
del  direccionamiento.  ¡ 

Si  nos  metemos  por  debajo  de  la  página  cero,  / 
saldremos  por  el  bloque  más  alto  de  8K  (8000-  /  < 

byte)  de  la  memoria  (57344-65535).  Aquí  reside  R 
el  sistema  operativo  del  ordenador,  un  enorme  I  \ 
programa  en  lenguaje  máquina  llamado  la  //  \ 
ROM  del  Kernal.  //  | 

La  ROM  (Memoria  de  Sólo  Lectura)  es  ,  f 
un  programa  que  siempre  se  encuentra  den-  Ui  ¡ 
tro  del  chip  de  silicona,  incluso  cuando  apa-  IjjihJ 
gas  el  ordenador.  Sin  embargo,  la  RAM  es  iMvuf,) 
memoria  inestable,  lo  que  quiere  decir  que  /  . — - — 

su  contenido  se  desorganiza  por  completo  /Al 
cuando  apagas  el  ordenador.  //tw\  \'  ^ 

A  no  ser  que  estés  dispuesto  a  aprender  //  \  \ 

lenguaje  máquina,  esta  zona  quedará  un  j¡f  ‘ 
poco  fuera  de  tu  alcance.  No  es  que  sea  jk 
“Top  Secret”,  pero  sí  resulta  difícil  de  ¡m 

comprender  para  un  principiante. 

Sin  embargo,  hasta  nosotros  f¡jZ 

los  “fisgones”  somos  capaces  de  Mu 

reconocer  un  par  de  cosas  en  esta  {'  ( 11 
región.  Si  fisgoneas  un  poco  por  la  ' 

61624,  por  ejemplo,  podrás  ver  el  ^  / 
texto  de  varios  mensajes  que  el 
ordenador  te  envía  durante  las 
operaciones  Save/Load/Verify. 

Aquí,  de  nuevo,  los  literales  se 
almacenan  letra  por  letra  de  la 
misma  forma  que  lo  ve  el  usuario. 


;;; 


(  (£12° 


22/Commodore  World  Noviembre  1984 - 


Un  poco  más  abajo,  por  la  58464,  se 
encuentra  ese  mensaje  tan  familiar 
que  aparece  cuando  enciendes  el 
ordenador.  Más  abajo  todavia,  en  la  parte 
inferior  de  esta  zona,  se  encuentra  más 
ROM  de  Kernal. 

Pasando  por  debajo  de  la  ROM  del 
Kernal  nos  encontramos  en  un  barrio 
muy  movido  (53248-57343),  poblado  de 
sprites,  bichos  ruidosos  y  otros  animali¬ 
tos.  Podrías  considerar  este  bloque  de  4K 
como  la  zona  de  entrada/salida,  que 
maneja  mucho  más  de  lo  que  nos  pode¬ 
mos  ocupar  ahora  en  explicar. 

En  las  posiciones  56320  a  56831  se 
encuentran  dos  chips  CIA  (adaptador 
complejo  de  interface)  que  controlan  los 
joysticks,  paddles,  cronomotros  y  perifé¬ 
ricos  como  la  unidad  de  discos.  Un  poco 
más  abajo  (55296-56295)  se  encuentra  un 
bloque  de  1000  bytes  reservado  para  la 
memoria  de  color.  Del  mismo  modo  que 
podemos  controlar  el  formato  de  lo  que 
entra  en  la  memoria  de  pantalla  introdu¬ 
ciendo  los  valores  en  dicha  zona  mediante 
los  Pokes,  podemos  controlar  el  color  de 
cualquier  carácter  en  pantalla  utilizando 
los  Pokes  para  meter  los  valores  en  la 
memoria  de  color. 

Ambos  bloques  tienen  el  mismo  tamaño. 
1000  bytes,  y  el  ordenador  nos  los  com¬ 
para  automáticamente,  posición  por  posi¬ 
ción.  Si  avanzas  un  poco  por  esta  zona, 
podrás  ver  que  la  memoria  de  color  es 
una  zona  muy  activa. 

Debajo  de  la  memoria  de  color,  entra¬ 
remos  en  la  tierra  de  los  ruidosos,  posi¬ 
ciones  54272-55295,  que  contienen  el  sin- 
tetizador  de  sonido  del  C-64  (chip  SID). 
En  la  parte  inferior  de  la  zona  E/S  se 
encuentra  el  chip  VIC-II,  que  maneja  los 
sprites  y  los  gráficos  de  alta  resolución 
(53248-54271).  Algunas  de  estas  zonas 
(como  el  chip  de  sonido)  están  tranquilas 
ahora  mismo,  ya  que  el  programa  •‘Fis¬ 
gón”  no  los  necesita.  Pero  da  igual  lo  que 
tú  o  tu  programa  estéis  haciendo,  siempre 
hay  mucho  movimiento  en  este  barrio. 

lona  Aislada  da  RAM 

Si  te  apetece  descansar  un  poco,  el 
siguiente  bloque  de  4K  te  dará  la  oportu¬ 
nidad  de  hacerlo.  Pasa  por  debajo  de  la 
53248,  y  encontrarás  una  zona  que  parece 
tener  cierto  parentesco  con  la  RAM  libre 
por  donde  pasamos  al  principio  de  nues¬ 
tro  viaje.  La  verdad  es  que  eso  es  exacta¬ 
mente  lo  que  hemos  encontrado,  4000 
bytes  de  RAM  vacia,  desponible  para  tu 

Pero  curiosamente,  este  enorme  trozo 
de  memoria  se  encuentra  aislada  del  resto 
de  la  RAM  del  usuario.  Si  te  da  la  vena  y 
escribes  un  programa  que  ocupa  todos  los 
38K+  del  espacio  normal  para  textos  en 
Basic  del  C-64,  y  le  añades  otra  linea,  el 
ordenador  te  enviará  un  mensaje  de  Out 
Of  Memory  Error,  y  dejará  esta  zona  tan 
vacia  como  se  encuentra  ahora  mismo. 

Entonces,  ¿por  qué  incorporar  una 
zona  aislada  de  RAM  en  un  ordenador? 
Verás  uno  de  los  motivos  si  te  desplazas 
hacia  abajo  hasta  la  posición  más  baja  de 
este  bloque,  la  posición  49152.  ¿Te  suena? 


Tú  mismo  lo  metiste  cuando  tecleaste  el 
programa  “Fisgón".  Aquí  es  donde  em¬ 
pieza  nuestra  rutina  de  lenguaje  mᬠ
quina. 

Evidentemente  sigue  habiendo  mucha 
RAM  libre  en  nuestro  espacio  para  el 
texto  en  Basic,  de  modo  que  podríamos 
haber  metido  alli  el  programa  en  lenguaje 
máquina  (igual  que  hicimos  con  las 
instrucciones  en  pantalla),  pero  ¿qué 
hubiera  ocurrido  en  caso  de  haber  metido 
el  programa  en  lenguaje  máquina  por 
error  en  medio  del  texto  en  Basic,  o  justo 
al  lado  suyo  en  los  espacios  que  necesita 
para  almacenar  las  variables  o  los 
"arrays"?  El  resultado  hubiera  sido  un 
desastre  soberano.  Para  que  la  vida  sea 
más  sencilla,  guardamos  la  rutina  en 
lenguaje  máquina  aquí  arriba,  donde  el 
Basic  nunca  se  meterá. 

Para  que  puedas  leer  el  programa  en 
lenguaje  máquina  que  tienes  delante, 
utiliza  la  tabla  de  códigos  de  pantalla. 
Durante  la  iniciación,  el  primer  valor  de 
datos  que  introdujimos  mediante  en  Poke 
fue  160,  que  aparece  como  un  cuadro 
blanco  (espacio  inverso)  en  la  pantalla. 

Ya  que  estamos  aquí,  observa  lo 
compacto  que  resulta  el  programa  en 

_ El _ 

ordenador 

_ realiza _ 

el  mismo 

_ proceso _ 

_ de _ 

verificación 
de  errores 

_ mientras 

_ está _ 

ejecutando 

_ tu  texto _ 

en  Basic. 


lenguaje  máquina,  comparado  con  nuestro 
texto  en  Basic.  Ocupa  solamente  69  bytes, 
pero  no  tarda  nada  en  hacer  lo  que  el 
Basic  llevaría  muchos  segundos  aburridos 
en  realizar.  Los  programas  en  lenguaje 
máquina  son  tan  cortos  porque  están 
escritos  en  la  lengua  materna  del  ordena¬ 
dor:  los  números:  La  mayoría  de  los 
caracteres  que  ves  aquí  representan 
instrucciones,  parecidas  a  una  palabra  en 
Basic,  que  el  ordenador  ejecuta  al 
instóme.  No  se  tiene  que  preocupar  de  los 
números  de  linea,  ni  los  punteros,  trabaja 
con  valores  limpios  y  ligeros. 

Otro  Programa  an  Basic 

Sigue  bajando  hasta  la  siguiente  zona 
de  8K,  y  descubrirás  más  explicaciones 
para  esta  gran  diferencia  de  velocidad. 
Esta  zona  (los  bloques  de  8K  son  muy 
populares  aqui  en  la  parte  altó  de  la 
memoria)  tiene  un  alcance  desde  la  40960 
hasta  la  49151.  A  medida  que  bajas, 
estarás  pensando  que  todo  esto  se  parece 
mucho  al  programa  del  sistema  operativo 
que  vimos  al  principio  de  la  memoria.  Si 
es  así,  has  vuelto  a  acertar.  Estamos 
viendo  otro  enorme  programa  en  lenguaje 
máquina,  el  que  la  mayoría  de  nosotros 
llamamos  Basic. 

A  lo  mejor  nunca  lo  has  considerado  de 
esta  forma,  pero  el  lenguaje  Basic  es 
simplemente  otro  programa,  registrado 
permanentemente  en  la  ROM.  La  finalidad 
del  programa  Basic  es  la  de  ayudarte  a  ti  a 
escribir  programas.  Si  sigues  sin  creértelo, 
baja  a  la  40960  donde  empieza  el  Basic. 
Igual  que  "Fisgón”,  este  programa  tiene 
un  titulo:  CBM  Basic.  Más  abajo  todavía 
las  palabras  clave  y  los  mensajes  de  error 
del  Basic  están  almacenados  como  lite¬ 
rales.  Vamos  a  parar  un  momento  a  refle¬ 
xionar  — aqui  hay  mucho  que  aprender. 

Este  programa  en  Basic  (normalmente 
denominado  Intérprete  Basic)  que  realiza 
muchos  trabajos  y  detecta  muchos  de  tus 
errores,  es  lo  que  hace  que  tu  ordenador 
sea  una  máquina  tan  amistosa.  Cada  vez 
que  enciendes  el  ordenador,  el  sistema 
operativo  lo  hace  pasar  por  una  serie  de 
rutinas  de  inicialización  (una  de  las  cua¬ 
les,  como  hemos  visto,  es  fijar  el  puntero 
que  indica  el  principio  del  Basic).  En 
cuanto  el  ordenador  termine  sus  tareas 
domésticas,  vuelve  automáticamente  al 
programa  en  Basic  y  lo  empieza  a 
ejecutar. 

Vamos  a  suponer  que  acabas  de  encen¬ 
der  el  ordenador.  El  Basic  se  está  ocu¬ 
pando  de  sus  cosas  tranquilamente  en  la 
trastienda.  Aunque  el  ordenador  sola¬ 
mente  "entiende”  números,  se  deja  man¬ 
dar  por  unas  palabras  estilo  inglés.  Si 
tecleas  la  primera  linea  de  "Fisgón”  y 
pulsas  la  tecla  Return,  el  ordenador  alma¬ 
cenará  su  versión  abreviada  al  principio 
del  espacio  reservado  para  el  texto  en 
Basic.  Teclea  la  segunda  linea,  y  el  texto 
¡recreciendo  hacia  arriba  en  la  memoria. 
Además  de  comprimir,  numerar  y  alma¬ 
cenar  las  lineas  de  tu  programa  y  manejar 
sus  punteros,  el  ordenador  está  compa¬ 
rando  tu  sintaxis  con  el  diccionario  que 
forma  parte  del  Basic.  I  ► 

—  Commodore  World  Noviembre  1984/23. 


Vial*  al  cantro  da  tu  Commodora 

►  Por  ejemplo,  si  en  vez  de  entrar  una 
linca  numerada  en  Basic,  introduces  la 
palabra  TONTERIA,  el  ordenador  te 
enviará  un  mensaje  de  error.  Tu  entrada 
no  lleva  número  de  linea,  de  modo  que  no 
puede  ser  almacenada  como  parte  del 
texto  en  Basic,  y  el  ordenador  ha  com¬ 
probado  tu  palabra  en  su  diccionario 
incorporado  y  ha  descubierto  que  TON¬ 
TERIA  no  existe  en  el  vocabulario  de 
CBM  Basic.  Esto  significa  que  el  ordena¬ 
dor  tampoco  puede  tratar  tu  palabra 
como  un  comando  directo  en  el  modo 
inmediato.  Sólo  te  puede  avisar  que  existe 
un  error  de  sintaxis,  y  que  lo  intentes  de 
nuevo. 

El  ordenador  realiza  el  mismo  proceso 
de  verificación  de  errores  mientras  está 
ejecutando  tu  texto  en  Basic.  A  medida 
que  va  leyendo,  el  ordenador  reconoce 
cada  palabra  clave  en  Basic  comparán¬ 
dola  con  las  que  tiene  en  su  lista  de  pala¬ 
bras.  Si  encuentra  una  palabra  igual, 
sigue  adelante.  Lo  que  ocurre  a  conti¬ 
nuación  depende  de  varias  cosas,  de 
modo  que  vamos  a  considerarlas  una  por 
una. 

Vamos  a  suponer  que  tu  texto  en 
Basic  contiene  la  sentencia  POKE  A,  B,  y 
que  el  ordenador  acaba  de  comprobar 
que  Poke  es  una  palabra  en  Basic.  A  con¬ 
tinuación  tiene  que  verificar  lo  que  repre¬ 
senta  A,  para  lo  cual  necesita  desplazarse  a 
la  casilla  A  en  el  espacio  para  el  almace¬ 
namiento  de  las  variables.  Ahora  el  orde¬ 
nador  sabe  la  posición  donde  queremos 
realizar  el  Poke,  todavía  no  sabe  el  valor 
que  le  queremos  introducir.  De  modo  que 
tiene  que  ir  a  la  casilla  que  contiene  la  B, 
para  recoger  el  valor  de  B  para  poder 
realizar  nuestro  comando,  es  decir,  en 
cuanto  termine  de  hacer  unas  cuantas 
verificaciones. 

¿Qué  ocurriría  si  le  dijéramos  al  orde¬ 
nador  que  realizara  un  Poke  en  una  posi¬ 
ción  que  no  exisitía,  o  en  una  posición 
mayor  que  la  65535?  O,  ¿qué  pasarla  si  la 
posición  es  la  correcta,  pero  le  hemos 
obligado  al  ordenador  a  introducir  un 
valor  demasiado  grande  para  cualquier 
celda  de  memoria?  Pues,  el  ordenador 
reconocerá  el  error,  sacará  el  mensaje  de 
lllegal  Quantity  Error  de  la  ROM  y  lo 
pondrá  en  la  pantalla  y  hará  parar  el  pro¬ 
grama.  Además,  no  dirá  cuál  es  la  línea 
que  contiene  el  error. 

Pero  no  saques  demasiadas  conclusio¬ 
nes.  Solamente  porque  el  ordenador  dejó 
de  ejecutar  nuestro  texto  en  Basic  no  sig¬ 
nifica  que  ha  dejado  de  funcionar  en 
Basic.  Lo  único  que  ha  hecho  ha  sido 
dejar  el  modo  de  ejecución  para  adoptar 
el  modo  de  edición  para  que  podamos 
arreglar  nuestro  texto.  Esta  parte  del  pro¬ 
grama  en  Basic  nos  permite  listar  la  linea 
incorrecta,  modificarla  y  sustituirla  por  la 
correcta.  Después  de  haber  almacenado 
la  linea  nueva,  el  ordenador  ajustará 
todos  sus  punteros  de  acuerdo  con  sus 
necesidades,  y  esperar  que  el  humano  le 
dé  un  comando  que  tenga  un  poco  de 
sentido. 

Por  lo  tanto,  mientras  que  tú  estás 
haciendo  tu  programa,  el  ordenador  está 

-24/Commodore  World  Noviembre  1984. _ 


ejecutando  el  programa  en  Basic  al 
mismo  tiempo,  ocupándose  de  que  nues¬ 
tro  camino  sea  más  fácil  de  seguir.  Este 
proceso  tan  complejo  de  traducir  nuestros 
comandos  y  captar  nuestros  errores  es  lo 
que  hace  que  los  programas  escritos  en 
Basic  vayan  tan  despacio.  Cuando  exigi¬ 
mos  que  nuestro  ordenador  realice  todo 
esto  a  la  velocidad  de  la  luz,  le  estamos 
pidiendo  mucho;  además,  tiene  otras 
cosas  que  hacer,  como  por  ejemplo  enviar 
una  imagen  en  vídeo  que  tu  pantalla 
puede  volver  a  sacar  60  veces  cada 
segundo. 

Casi  hemos  llegado 

Si  has  aguantado  hasta  ahora,  espérate 
un  poco  más.  Estamos  a  punto  de  entrar 
en  tierras  más  familiares  — el  RAM  libre 
utilizada  para  el  texto  en  Basic.  En  el  C- 
64,  ésta  llega  desde  la  2048  hasta  la  40959. 
Como  verás  ahora  mismo,  esas  son 
muchas  casillas.  Pero  antes  de  reempren¬ 
der  el  largo  camino  hacia  la  representa¬ 
ción  de  nuestras  instrucciones,  vamos  a 
mirar  esa  cuarta  zona  “extra"  reservada 
por  el  ordenador  cuando  se  ejecuta  un 
programa. 

Esta  zona  se  utiliza  para  almacenar  los 
“strings".  A  diferencia  del  espacio  de 

_ Aunque _ 

_ no _ 

_ vamos _ 

_ a  tocar _ 

los  motivos 

_ ahora, _ 

_ esto _ 

te  permite 

_ realizar _ 

_ grandes _ 

_ cosas _ 

_ con  el _ 

Basic _ 


almacenamiento  de  las  variables  y  los 
“arrays”,  que  empiezan  desde  abajo  y 
crecen  hasta  arriba,  el  almacenamiento  de 
los  “strings”  empieza  en  la  parte  superior 
de  la  RAM  del  usuario  y  crece  hacia 
abajo.  De  hecho,  este  espacio  se  ha  ido 
aumentando  a  lo  largo  de  nuestro  viaje. 
No  te  puedo  decir  exactamente  dónde  se 
encuentra  el  borde  inicial  del  almacena¬ 
miento  de  los  “strings”  porque  no  sé  el 
número  de  veces  que  has  pulsado  una 
tecla  mientras  has  estado  fisgoneando.  Se 
encuentra  en  algún  lugar  debajo  de  la 
40959,  y  se  desplaza  más  abajo  cada  vez 
que  pulsas  una  tecla. 

Desplaza  el  cursor  hacia  abajo  poco  a 
poco  y  encontrarás  el  almacenamiento  de 
los  “strings”  representado  como  una 
linea  de  caracteres  "q”  que  se  desplazan 
hacia  la  izquierda  de  la  pantalla.  Si  no 
estás  muy  seguro  si  lo  has  encontrado, 
mantén  la  barra  de  espacios  pulsada  y 
verás  un  bloque  oscuro  y  sólido  que  se 
desplaza  de  derecha  a  izquierda,  desde  las 
posiciones  más  altas  hasta  las  más  bajas. 

Lo  que  estamos  haciendo  es  pasar  una 
y  otra  vez  por  las  sentencias  GET  A$  en 
la  linea  4.  Si  has  pulsado  una  tecla  dis¬ 
tinta  cuando  el  ordenador  llega  a  esta  sen¬ 
tencia,  la  variable  llamada  AS  se  vuelve  a 
definir,  y  el  “string"  nuevo  se  almacena 
por  separado  aquí  arriba.  Aunque  no 
vamos  a  tocar  los  motivos  ahora,  esto  te 
permite  realizar  grandes  cosas  con  el 
Basic.  En  el  programa  “Fisgón”,  cada 
“string"  nuevo  tiene  una  longitud  de  un 
carácter,  pero  el  CBM  Basic  te  permite 
hacer  “strings”  con  una  longitud  de  hasta 
255  caracteres  juntando  (concatenación) 
unos  “strings"  cortos. 

Si  usas  cientos  de  sentencias  Get  para 
introducir  datos  mediante  el  teclado  esta 
zona  resulta  fácil  de  encontrar,  pero  esta 
técnica  entraña  sus  peligros.  Mientras 
escribo  esto,  el  principio  del  espacio  para 
los  “strings”  se  encuentra  por  la  38000  en 
la  memoria,  es  decir  muy  lejos  de  nuestro 
texto  en  Basic,  aunque  la  pantalla  de  ins¬ 
trucciones  se  encuentra  mucho  más  alta 
(12288-12387).  Si  el  almacenamiento  de 
los  “strings"  llega  hasta  allí  abajo,  pasará 
por  las  posiciones  de  la  pantalla  de  ins¬ 
trucciones,  llenándolas  de  unas  “q”  sin 
sentido.  Ten  en  cuenta  que  existen  más 
métodos  para  traer  los  datos  introducidos 
mediante  el  teclado  (haciendo  un  Peek  en 
la  Posición  197,  por  ejemplo)  que  no 
comen  la  memoria  de  esta  forma. 

Estamos  llegando  a  casa,  de  modo  que 
vamos  a  recorrer  el  largo  camino  hasta  la 
pantalla  de  instrucciones.  No  me  pude 
hacer  idea  de  la  cantidad  de  RAM  para  el 
usuario  que  contiene  el  C-64  hasta  que 
realicé  este  viaje  desde  la  parte  superior. 
No  te  preocupes  si  tus  instrucciones  están 
todas  mezcladas,  el  formato  de  antes 
sigue  estando  allí,  almacenado  en  exac¬ 
tamente  las  mismas  posiciones.  Durante 
nuestro  paseo  por  el  C-64,  hemos  ido 
dando  pasos  de  40  bytes  para  que  la  ima¬ 
gen  en  pantalla  tuviera  alguna  coheren¬ 
cia.  El  número  40  no  entra  en  65536,  que 
es  el  número  de  posiciones  de  memoria 
por  las  cuales  acabamos  de  pasar,  de 


Viaje  al  centro  de  tu  Commodore 

modo  que  no  hemos  podido  aterrizar 
exactamente  en  la  base.  Y  además,  segu¬ 
ramente  estarás  todavía  en  la  modalidad 
de  gráficos  minúsculas.  Para  que  todo 
vuelva  a  la  normalidad,  pulsa  la  tecla  Q 
para  salir,  y  vuelve  a  teclear  RUN. 

Cómo  funciona  “Fisgón" 

Ahora  que  has  visto  las  entrañas  de  tu 
ordenador,  seguramente  querrás  saber 
cómo  “Fisgón”  las  ha  podido  sacar  en 
pantalla.  Yo  había  escrito  la  parte  de  len¬ 
guaje  máquina  de  este  programa  para  un 
juego  en  el  que  el  jugador  puede  hacer  un 
scroll  hacia  arriba  o  hacia  abajo  dentro  de 
un  terreno  de  juego  con  una  longitud  de 
muchas  pantallas,  que  yo  habia  diseñado 
en  la  memoria  igual  que  la  pantalla  de 
instrucciones  de  “Fisgón".  Una  vez  que 
me  di  cuenta  de  la  forma  de  desplazarme 
por  el  terreno  de  juego,  supe  que  no  tenia 
por  qué  parar  allí  usando  la  misma  téc¬ 
nica,  me  podía  meter  en  cualquier  parte 
del  ordenador,  abrir  la  puerta  y  ver  todas 
esas  cosas  misteriosas  e  invisibles  que 
conocía  solamente  de  los  libros. 

Tu  ordenador  dispone  de  dos  ventanas 
incorporadas  para  mirar  la  memoria.  Una 
es  la  sentencia  Peek,  que  te  proporciona  el 
valor  numérico  almacenado  en  cualquier 
posición  de  memoria.  La  sentencia  Peek 
te  puede  llevar  desde  cero  hasta  65535, 
pero  no  deja  de  ser  una  ventana.  La 
memoria  de  pantalla  es  otro  tipo  de  ven¬ 
tana,  miles  de  veces  más  grande.  Cual¬ 
quier  cosa  que  se  introduce  mediante  un 
Poke  en  esta  zona,  sale  en  la  pantalla, 
¿pero  cuál  es  el  método  para  que  esta  ven¬ 
tana  enorme  se  mueva? 

Pues  bien,  la  memoria  de  pantalla  tiene 
una  movilidad  muy  limitada.  Si  haces  un 
Poke  (con  cuidado)  en  una  posición  de 
control,  53272,  podemos  desplazar  la 
memoria  de  pantalla  hacia  cualquiera  de 
estas  dieciséis  posiciones  en  el  C-64.  Pero 
todas  estas  posiciones  son  fijas,  y  esta 
técnica  crea  más  complicaciones.  Parece 
imposible  hacer  un  scroll  de  unos  cuantos 
bytes  hacia  arriba  o  hacia  abajo.  ¿Cuál  es 
la  solución? 

Si  no  podemos  llevar  la  pantalla  a  los 
datos,  tendremos  que  llevar  los  datos  a  la 
pantalla.  Resulta  fácil  (pero  lento)  en 
Basic  copiar  cualquier  bloque  de  memo¬ 
ria  de  mil  bytes  en  la  pantalla.  Solamente 
hay  que  hacer  un  Peek  en  cada  posición 
original  de  modo  consecutivo,  e  introdu¬ 
cir  los  valores  que  encontramos  en  la 
memoria  de  pantalla  mediante  un  Poke. 
Vamos  a  hacer  una  pequeña  prueba  de 
velocidad.  Si  todavía  se  está  ejecutando  el 
programa  “Fisgón”,  pulsa  la  F  para 
salir.  Ahora,  borra  la  pantalla,  entra  la 
siguiente  linea  y  pulsa  la  tecla  Return. 

FOR  J=0  TO  999:  POKE  1024+J, 

PEEK(  12288+ J)  :NEXT  J 

¡Voila!  El  bloque  original  que  hemos 
copiado  es  el  que  contiene  nuestras  ins¬ 
trucciones.  Para  hacer  un  scroll  de  una 
linea  hacia  arriba  o  hacia  abajo  en  la 
memoria,  podemos  sumar  o  restar  40  de 
12288,  y  repetir  todo  el  proceso.  De 
acuerdo,  esto  funciona,  pero  tardaríamos 

L  26/Commodore  World  Noviembre  1984  _ 


muchísimo  en  mirar  las  65536  posiciones 
en  Basic.  Nuestro  programa  en  lenguaje 
máquina  todavía  se  encuentra  en  la 
memoria,  de  modo  que  vamos  a  ver  si  nos 
puede  acelerar  un  poco  todo  el  proceso. 
Borra  la  pantalla  y  entra  esta  linea: 

POKE  251,0:  POKE  252,48:  SYS  49152 
Supongo  que  te  habrás  dado  cuenta 
quién  ha  ganado  la  carrera.  Además  de 
copiar  1000  bytes,  la  rutina  en  lenguaje 
máquina  acaba  de  llenar  todas  las  1000 
casillas  de  la  memoria  de  color  con  valo¬ 
res  en  blanco  para  las  “nuevas"  ROM  del 
C-64.  Podríamos  decir  que  “Fisgón”  es 
un  programa  híbrido,  dado  que  funciona 
en  dos  partes,  cada  una  cumpliendo  la 
función  que  mejor  sabe  desempeñar.  La 
rutina  en  lenguaje  máquina  realiza  una 
sencilla  tarea  repetitiva  de  una  manera 
enormemente  eficaz,  y  el  Basic  maneja 
unos  cálculos  más  complejos  donde  la 
velocidad  no  tiene  tanta  importancia. 

Este  tipo  de  programa  en  lenguaje 
máquina  es  conocido  por  una  utilidad  de 
movimiento  en  bloque,  y,  dada  la  memo¬ 
ria  grande  disponible  en  el  C-64,  sus  posi¬ 
bilidades  no  tienen  limite.  Podrías  esta¬ 
blecer  diferentes  pantallas  en  varios 

_ El _ 

ordenador 

_ puede _ 

quedarse 

_ colgado _ 

_ si  haces _ 

_ un  Poke _ 

_ a  ciegas _ 

_ en  las _ 

_ zonas _ 

sensibles 


como 

la  página  cero. 


puntos  a  lo  largo  de  la  RAM,  y  hojearlas 
a  la  velocidad  de  la  luz,  para  cambiar  de 
un  terreno  a  otro  en  un  juego,  escribir 
páginas  consecutivas  de  instrucciones, 
etcétera.  Antes  de  poder  realizar  su  tra¬ 
bajo,  la  rutina  en  lenguaje  máquina 
requiere  solamente  un  dato:  la  dirección 
inicial  del  bloque  original  de  1000  bytes 
de  memoria  que  queremos  copiar. 

Cambiando  la  dirección 

Es  la  obligación  del  programa  en  Basic 
es  saber  la  dirección  a  donde  se  tiene  que 
dirigir,  y  este  tipo  de  transferencia  de 
información  es  una  parte  fundamental  de 
la  informática,  de  modo  que  vamos  a 
estudiarlo  un  poco  más  de  cerca.  Ya  has 
aprendido  cómo  el  ordenador  almacena 
los  valores  de  las  variables  en  unas  "casi¬ 
llas"  especiales,  reservadas  y  etiquetadas 
precisamente  para  este  propósito.  Siem¬ 
pre  que  se  modifique  una  variable,  o  se 
necesita  en  otro  sitio,  el  ordenador  vuelve 
a  la  casilla  para  almacenar  un  valor  nuevo 
o  recuperar  el  valor  actual.  Nosotros 
estamos  haciendo  exactamente  lo  mismo 
con  nuestro  programa  "Fisgón".  Cada 
vez  que  pulsas  la  tecla  cursor  arriba/a¬ 
bajo,  el  programa  calcula  una  nueva 
dirección  original  y  la  almacena  en  la  casi¬ 
lla  donde  sabe  que  la  buscará  la  rutina  en 
lenguaje  máquina. 

Si  resulta  difícil  hacerte  la  idea,  ima¬ 
gina  que  la  rutina  en  lenguaje  máquina  es 
un  mensajero.  El  jefe,  el  programa  en 
Basic,  escribe  la  dirección  en  un  papel  que 
mete  en  la  casilla  mientras  el  mensajero 
está  durmiendo.  El  jefe  despierta  al  men¬ 
sajero  con  el  comando  SYS.  El  mensajero 
va  corriendo  a  la  casilla  asignada,  lee  la 
dirección,  y  se  dirige  hacia  ella  corriendo 
para  recoger  los  1000  bytes  de  datos  y 
entregarlos  donde  se  necesitan  (la  memo¬ 
ria  de  pantalla). 

Hasta  ahi  resulta  sencillo,  pero  esto  se 
complica  un  poco  porque  el  ordenador 
necesita  dos  células  de  memoria  para 
almacenar  la  mayoría  de  las  direcciones. 
De  modo  que  nuestra  casilla  consiste  en 
dos  células,  una  al  lado  de  la  otra. 
Recuerda,  cada  célula  sólo  puede  almace¬ 
nar  un  número  (decimal)  de  cero  hasta 
255,  mientras  que  el  ordenador  dispone 
de  direcciones  que  pueden  llegar  hasta 
65535.  Para  que  lo  puedas  comprender 
mejor,  vamos  a  estudiar  un  poco  el  sis¬ 
tema  de  numeración  binario. 

Todos  conocemos  el  sistema  de  nume¬ 
ración  decimal,  llamado  de  base  10  por¬ 
que  tiene  10  dígitos:  de  0  hasta  9.  Pero  se 
puede  contar  de  muchas  otras  formas.  Un 
chip  de  silicona  es  mucho  menos  com¬ 
plejo  que  tu  cerebro,  de  modo  que  resulta 
más  fácil  para  los  ordenadores  emplear 
números  binarios,  de  base  2,  que  sola¬ 
mente  utilizan  dos  dígitos:  0  y  1.  Utili¬ 
zando  este  sistema  sencillo,  podemos 
escribir  cualquier  número  de  0  hasta  255 
empleando  solamente  ocho  dígitos.  El 
número  decimal  I  tiene  el  siguiente  for¬ 
mato:  00000001,  v  el  número  decimal  254 
este:  11111110. 

Imagina  que  cada  célula  de  memoria  es 
una  colección  de  ocho  interruptores  que 


Ha  llegado  un  N°  1 
en  USA  para  su 


Commodore  64 

Ud.  está  en  su  posición  vigilando 
Washington  D.C. 

La  ciudad  parece  apacible  desde 
su  puesto  de  defensa  y  no  hay  los 
signos  de  la  invasión  Extraterrestre 
que  Ud.  espera. 

De  pronto  el  silencio  es  alterado 
por  el  penetrante  silbido  de  los 
platillos  volantes.  Son  los  invasores 
descendiendo  sobre  la  ciudad. 

Ud.  entra  en  acción  y  pone  en  su 
punto  de  mira  al  platillo  volante. 

Aprieta  el  botón  de  juego  y  sale  un 
misil  que  destruye  al  ovni 
desintegrándose  el  platillo.  Otro 
platillo  volante  se  acerca  a  los 
edificios  y  antes  de  que  Ud.  se  de 
cuenta  destruye  el  monumento  de 
Washington  C.D.  con  un  rayo  de 
energía  atómica.  La  batalla 
transcurre  durante  el  día  y  en  un 
momento  determinado  pasa  a  ser 
de  noche. 

Si  un  platillo  aterriza  todo  está 
perdido.  Cuando  Ud.  consiga 
neutralizar  el  ataque  el  juego 
continuará  y  se  deberá  destruir  la 
nave  madre.  Si  lo  consigue  unagran 
celebración  le  espera  cuando 
vuelva  a  Washington  D.C. 

SAUCE R  ATTACK 
es  realmente 
un  JUEGO  DISTINTO 


An  action  game 
for  the 

Commodore  64’ 

Joystick  required 


FOTOS  l 
TOMADAS  DIRECTAMENTE 
ÓE  UN  MONITOR  1702 


COMMODORE 


INSUPERABLE  CALIDAD  AUDIOVISUAL 


PEDIDOS 

FEPPE  -fílOPET  /.A 

Tuset  n.°  8,  entlo.  2°  Tel.  218  02  93 
BARCELONA  08006 

DISTRIBUIDORES 
Y  PARTICULARES 

% 


NOMBRE . 

DIRECCION . 

CIUDAD . 

...PROVINCIA . 

□  Adjunto  cheque 

□  Contra  reembolso 

Precio  Venta 

Gastos  envió:  300  ptas. 

9.975  ptas. 

/llpl 

|3PI 

*.  \00oiiae '  J  "  *  ’ 

¿QSP^  ■  -  m 


Viaje  al  centro  da  tu  Commodor» 

pueden  estar  en  posición  de  encendido  o 
apagado  y  de  esta  forma  representar  un  1 
ó  un  0  en  binario  para  el  ordenador.  Esto 
funciona  si  nos  quedamos  en  la  página 
cero,  donde  todas  las  direcciones  son 
menores  que  256.  Pero  la  dirección  más 
alta  del  ordenador,  65535,  ocupa  dieciséis 
bits,  y  tiene  el  siguiente  formato: 
1111111111111111.  Esto  representa  dos 
veces  el  tamaño  de  cualquier  célula  de 
memoria. 

La  solución  es  hacerlo  por  duplicado. 
Los  microprocesadores  6502  utilizados  en 
los  ordenadores  Commodore,  Apple  y 
Atari  leen  las  direcciones  mirando  una 
pareja  de  números  que  residen  en  dos 
células  de  memoria  contiguas,  sumando 
las  dos  mitades  de  ocho  bits  para  formar 
una  dirección  entera  de  dieciséis  bits.  En 
el  programa  “Fisgón",  el  jefe  Basic  tiene 
que  meter  la  mitad  de  la  dirección  en  una 
casilla  (posición  251)  y  la  otra  mitad  en  la 
célula  al  lado  (252). 

Si  has  llegado  hasta  aquí,  no  te  rindas 
ahora.  El  último  problema  que  tiene  que 
ser  resuelto  es  que  el  mensajero  es  bizco, 
no  es  capaz  de  juntar  las  dos  mitades  de 
una  dirección  hasta  que  el  jefe  las  invierte. 
Si  volvemos  a  pensar  en  el  sistema  bina¬ 
rio,  esto  significa  que  los  ocho  dígitos  más 
altos  (los  más  importantes)  tienen  que 
entrar  en  la  segunda  casilla,  y  los  ocho 
dígitos  más  bajos  (los  menos  importantes) 
entran  en  la  primera.  Repasa  la  línea  4  de 


"Fisgón",  y  verás  que  LO  se  introduce 
mediante  un  Poke  en  la  251,  y  Hi  se 
introduce  en  la  252.  Esto  se  llama  fre¬ 
cuentemente  format  de  byte  bajo/byte 
alto. 

Al  principio  este  sistema  te  podría 
parecer  de  locos,  pero  merece  la  pena 
aprenderlo  si  pretendes  ir  más  allá  de  la 
programación  más  sencilla.  La  mayoría 


de  los  ordenadores  personales  utilizan  el 
microprocesador  6502,  lo  que  significa 
que  el  formato  byte  bajo/byte  alto  tendrá 
muchos  años  de  vida.  Parece  complicado, 
pero  si  lo  tomas  con  calma  verás  cómo  al 
final  te  resulta  sencillo. 

De  todas  formas,  una  vez  que  com¬ 
prendas  lo  que  representan  LO  y  HI,  el 
resto  del  programa  “Fisgón”  es  sencillo. 
La  pantalla  no  se  mueve  nunca.  Lo  único 
que  hacemos  es  cambiar  la  dirección  del 
bloque  original  que  queremos  copiar, 
enviar  la  dirección  byte  bajo/byte  alto  a 
las  casillas  correspondientes  y  la  veloci¬ 
dad  del  lenguaje  máquina  hace  el  resto. 

Por  supuesto,  todavía  no  has  visto  las 
entrañas  de  tu  ordenador;  hay  poca  luz 
dentro  de  un  chip,  y  de  todas  formas,  no 
podrías  ver  los  electrones.  Pero  este  pro¬ 
grama  te  da  una  idea,  y  cuanto  más  veas, 
más  te  apetece  aprender. 

Si  te  has  cansado  de  “fisgonear", 
intenta  variar  un  poco.  Pulsa  la  P  para 
llamar  la  rutina  de  los  Pokcs,  e  introduce 
dos  valores,  siendo  el  primero  la  dirección 
y  el  segundo  el  valor  donde  vas  a  hacer  el 
Poke. 

Si  no  estás  muy  familiarizado  con  los 
Pokes,  prueba  con  algo  sencillo:  coloca 
un  carácter  gráfico  en  una  zona  en  blanco 
de  la  pantalla  de  instrucciones.  Pero  ten 
cuidado,  el  ordenador  puede  quedarse 
colgado  si  haces  un  Poke  a  ciegas  en  las 
zonas  sensibles  como  la  página  cero. 


Fisgoneando  en  el  VBC-20 


El  VIC-20  y  el  C-64  son  dos  máquinas  Al  arrancarse,  el  programa  “Fisgón"  ordenadores, 

muy  distintas,  pero  en  este  caso  los  dos  te  coloca  en  la  parte  inferior  de  la  zona  Obviamente,  el  VIC-20  no  tiene  spri- 

pueden  usar  casi  el  mismo  programa.  El  de  almacenamiento  del  texto  en  Basic,  tes,  y  el  generador  de  sonido  no  es  tan 

VIC-20  dispone  de  mucho  menos  RAM  en  las  posiciones  4096-4601.  La  memo-  lujoso  como  el  chip  Sil)  del  C-64.  Y 

del  usuario,  por  lo  que  omití  la  pantalla  ría  de  pantalla  es  más  pequeña  (506  aunque  el  microprocesador  6502  del 

de  instrucciones,  pero  al  mismo  tiempo  bytes  comparados  con  1000  bytes  en  el  VIC,  igual  que  el  6510  del  C-64,  puede 

intenté  subrayar  el  parecido  entre  los  C-64),  lo  que  significa  que  tu  viaje  se  acceder  a  cualquier  posición  de  memo- 

miembros  de  la  familia  Commodore  al  hará  en  saltos  de  22  bytes,  la  longitud  ría  de  cero  hasta  65535,  existen  grandes 

hacer  dos  listados  similares.  de  una  línea  de  pantalla  en  el  VIC.  “trozos"  del  VIC  que  no  se  utilizan 

El  programa  "Fisgón"  para  el  VIC-20  Dado  que  estamos  copiando  bloques  de  para  nada.  Son  simplemente  agujeros 

es  solamente  para  el  VIC  no  ampliado,  memoria  más  pequeños,  la  rutina  en  en  la  memoria,  esperando  ser  llenados 

de  modo  que  tendrás  que  quitarle  cual-  lenguaje  máquina  también  resulta  más  de  cartuchos  de  expansión  de  la  RAM, 

quier  cartucho  RAM  antes  de  ejecutarlo.  corta.  A  diferencia  del  C-64,  el  VIC-20  de  una  ROM  nueva,  o  de  lo  que  sea. 

La  ampliación  de  la  RAM  traslada  la  no  dispone  de  RAM  “extra",  por  lo  que  Pero  no  subestimes  tu  VIC-20.  Sus 

memoria  de  pantalla,  la  memoria  de  la  rutina  en  lenguaje  máquina  fue  colo-  grandes  caracteres  programantes  son 

color  y  el  texto  en  Basic  a  otras  posicio-  cada  en  el  buffer  del  cassette,  empe-  dos  veces  el  tamaño  de  los  del  C-64,  y 

nes  según  la  cantidad  que  se  añada.  Por  zando  en  la  posición  828.  además,  puede  hacer  cosas  que  su  her- 

este  motivo  es  aconsejable  consultar  la  Te  incontrarás  con  el  mismo  equipo  mano  mayor  no  puede,  como  modificar 

"Guia  de  Referencia  del  Programador  básico  dentro  del  VIC-20:  el  Basic  el  centrado  de  su  pantalla  en  un  moni- 

para  el  VIC-20"  si  quieres  modificar  el  CBM  y  la  ROM  del  Kernal  de  8K,  más  tor.  Aunque  dispone  de  poca  memoria, 

programa  para  que  funcione  en  una  una  página  cero  casi  idéntica.  Pero  todo  contiene  un  potente  microprocesador 

máqui,  a  ampliada.  También  tendrás  que  esto  se  encuentra  en  diferentes  sitios  que  se  ajusta  a  las  normas  de  la  indus- 

modificar  la  rutina  en  lenguaje  máquina  (consulta  los  mapas  de  memoria  en  el  tria,  y  si  llegas  a  dominar  esta  maquina, 

para  poder  enviar  los  datos  a  las  nuevas  manual),  y  además  existen  otras  dife-  no  tendrás  ningún  problema  en  entender 

posiciones  de  pantalla.  rendas  importantes  entre  los  dos  cualquier  otro  ordenador. 


28/Commodore  World  Noviembre  1984 


Multiplicación 
larga  en  Basic 


Los  Commodores  no  siempre  proporcionan  la 
respuesta  correcta  para  multiplicaciones 
realmente  larga.  Este  programa  proporciona  la 
precisión  matemática  necesaria  para  ti  y  para  tu 
Commodore. 


Un  amigo  mío  vino  a  casa  un  día 
diciendo  que  habia  perdido  cien  pesetas 
apostando  con  un  niño  que  decía  que  los 
equipos  Commodore  eran  bastante  bue¬ 
nos  pero  no  eran  ninguna  maravilla.  Para 
demostrar  lo  que  quería  decir  apostó  con 
mi  amigo  que  el  ordenador  era  incapaz  de 
multiplicar  dos  números  y  dar  un  resul¬ 
tado  correcto.  El  niño  hizo  que  el  orde¬ 
nador  multiplicara  dos  números  de  10 
dígitos  y  el  resultado  salió  como  uno  de 
esos  números  de  punto  flotante  con  un 
exponente.  El  niño  tenia  razón:  el  resul¬ 
tado  no  era  correcto. 

Esta  historia  provocó  mi  curiosidad. 


■i  %-Ir  t 


8 1  ^32 II 1961952 069 4 
X  3033211990 


VIC-20  -  C-64 
CBM-100  PETS 


Efectivamente,  ¿cómo  se  podía  progra¬ 
mar  un  ordenador  Commodore  para  que 
multiplicara  largas  cadenas  de  números? 
Yo  sólo  me  acordaba  de  un  campo  en  que 
esta  múltiple  precisión  matemática  se  uti¬ 
lizaba:  la  criptografía  moderna,  donde  se 
utilizan  largos  números  de  más  de  70  dígi¬ 
tos  con  mucha  frecuencia. 

Parecía  un  reto  divertido  intentar 
escribir  un  programa  para  solucionar  este 


problema  y.  dado  que  no  tenía  el  tiempo 
para  emplear  ningún  método  un  poco 
sofisticado,  decidí  imitar  la  multiplica¬ 
ción  a  mano.  El  resultado  se  presenta  en 
el  Listado  1. 

Sobre  el  programa 

Se  empieza  determinando  tres  "arrays": 
M 1  para  el  primer  factor  (multiplicando). 
M2  para  el  segundo  factor  (multiplicador) 
.(Pasa  a  pág.  74) 


10  REM  MULTIPLICAC ION  LARGA  EN  BASIC 
15  REM  ESCRITO  POR 
20  REM  ALEX  LAÑE 
40  REM 

45  REM  ESCRITO  PARA 
50  REM  VIC-20  Y  Ct>4 
tú  REM  ESTE  PROGRAMA 
c.5  REM  ENCUENTRE!  EL 
70  REM  PRODUCTO  DE  DOS 
75  REM  NUMEROS. 

bú  REM  TENIENDO  CUALQUIERA  DE  LOS 
85  REM  DOS  UNH  LONGITUD  MAXIMA 
8ú  REM  DE  70  DIGITOS. 

85  REM 

lú0  D1M  m«.7iúU.M2-.?0).ft<M0> 

105  REM 
110  REM  INPUT 
115  REM 

130  PPINT" [CLRI "  INPUT "PRIMERtSPCJNU 
MERO" - A* 

183  IF  LEFT*'  mí  .  1  i  =  "-"THEN  FL=FL+1  Fl 
*=RlGHT*iA.t,LENcR4.'-t> 

184  GOSUB  600 

185  FOR  I-LEN' Mi  >  T0  1  STEP  -1 

130  Mlfl >  =VAL <  MID*<  AÍ , LEN<  A*  > -14 1 , 1 > 

185  NEXT  I 

200  I NPUT " SEGUNDO [ SF'C  I NUMERO “ ,  tí 

203  IF  LEFT*'  B*,  1  .'="-"THEN  FL=FL+ 1  B 
*=RIGHT*CBf  LEN<B*9-1> 

204  00SUB  60ú 

205  FOR  I=LEN>B$)  Tü  1  '8TEP  -1 

210  M2<I)*VAL< MID*(B*< LEfKb* »-l4l, \> 
) 

215  NEXT  I 

217  IF  M**'*0“QR  B*="0"  THEN  HN*="0" 
GOTO  550 


220  REM 

225  REM  EJECUTANDOSE 
230  REM 
305  REM 

310  FOR  J=1  Tu  LENTA*  > 

320  FOR  1  =  1  TU  LENtB* ' 

330  F=l+J-1 

340  fl<F)*fKF>+M2<  I  )*Ml<  .!  < 

350  IF  Ñ>>a>3  THEN  H'F^H'.F^-lú  mF+ 

1 )=A(F+1 >+l ■ GOTO  35Ó 

860  NEXT  1 

370  NEXT  J 

380  REM 

365  REM  OUTPUT 

390  REM 

5úú  FOR  1=1 4ú  TO  1  STEP  -1 

510  IF  LEN<AN*>=0  AND  FKI>*0  THEN  GO 

TO  58ú 

52ú  MN*=HN*+RIGHT*<  STR*<ñ(  I  ■  >.  1  > 

53ú  NEXT  I 

540  IF  FL*1  THEN  AN*="-"+AN* 

550  PR I NT  PR 1 NT " EL  t  SPC ] PRODUC TOC  SPC I 
ES  " 

560  PPINT  HN* 

565  END 
600  REM 

610  REM  VERIFICACION 
620  REM 

630  IF  Fl*ú  THEN  Ct=Aí 
640  IF  Fl=l  THEN  C*=B* 

650  FOR  K=1  TO  LENTC*  ’ 

660  I F VAL <  M I D*  •  C  *  i  . 1 /•=0THENIFMID*< 

C* , K . I K>"0" THENPRINT "NHL  C  SPC I  DATO" 

ÚÜ  T 0565 

670  NEXT  K 

680  Fl=l 

690  RETURN 


_ Commodore  World  Noviembre  1984/29. 


MusíCalc 

El  Sistema  Creativo  de  Música 

(para  personas  aún  sin  conocimientos  musicales) 


¡Que  suene  la  música! 

Convierta  a  su  Commodore  64  en  un  sofisti¬ 
cado  instrumento  musical,  y  él  le  convertirá  en 
un  compositor,  director  y  músico. 

Con  MUSICALC,  el  sistema  de  música  crea¬ 
tiva,  toda  la  familia  es  capaz  de  componer  y 
tocar  música  de  una  manera  instantánea. 

¡MUSICALC  le  divierte  jugando  con  la 
música! 

Obtenga  copias  en  papel  de  sus  propias  par¬ 
tituras,  utilize  más  de  30  escalas  distintas,  co¬ 
néctelo  a  su  equipo  de  alta  fidelidad  y  a  una 
caja  de  ritmos,  y  muchas,  muchas  posibilida¬ 
des  más. 


TABLA  GRÁFICA 

para  Commodore  64 


Entra  en  el  apa¬ 
sionante  mundo 
del  arte  de 
ordenador. 
¡Fácil  de  usar! 


Se  entrega  junto 
con  soft  en  cartu¬ 
cho.  Gráficos  en 
alta  resolución. 
16  colores.  2  pᬠ
ginas  de  dibujo. 
Zoom,  menús  de  diseño,  archivo  en  cinta  o  dis¬ 
co,  posibilidad  de  incluir  texto.  Permite  printar  los 
gráficos  mediante  soft  adicional. 


Durabilidad  y  buen  precio 

Compatible  con  C-64,  Atari,  Spectravideo,  Sinclair  Spec- 
trum  (con  interface)  etc... 


MONITOR  DE  COLOR 

14”  Profesional 


•  Pantalla  de  gran  resolución 

•  Sonido  incorporado 

•  Entrada  señal  video  compuesta  o  RGB 

•  Peana  orientable 

•  Gran  resistencia  y  durabilidad 


Adaptable  a  todos  los  ordenadores. 

(Los  microordenadores  que  sólo  tienen  salida  RF  son  compatibles  me¬ 
diante  una  sencilla  conexión) 


Distribuidor  exclusivo 


i  IDEALOGIC 

Gran  Via  Carlos  III,  97  K.  0B028  BARCELONA 
Tais:  330  33  08  -  330  33  62.  Téleic:  50156  JONC 


Le  presentamos  a  SPINNAKER. 

Para  que  también  nuestros  hijos  aprendan  jugando  con  el  ordenador. 


IDEALOGIC 


DISPONEMOS  DE  VERSIONES  PARA  APPLE 


Muchos  padres  ya  conocen  que  el  ordenador  doméstico  pue¬ 
de  servir  para  que  nuestros  hijos  jueguen  y  pasen  largos  ratos  de 
ocio  Con  SPINNAKER  los  juegos  de  ordenador  además  sir¬ 
ven  para  aprender 

SPINNAKER  es  la  firma  líder  mundial  en  juegos  educativos  para 
ordenador.  Ahora  llega  a  nuestro  país  para  que  también  nuestros 
hijos  aprendan  jugando  con  el  ordenador. 

Nuestros  juegos  están  llenos  de  emoción,  entretenimiento  co¬ 
lor,  música...  ñero  además  poseen  un  alto  grado  de  valor  educati¬ 
vo  ayudando  a  los  niños  a  que  desarrollen  sus  habilidades  y  apren¬ 
dan  de  una  divertida  manera.  Aprovechando  al  máximo  las  nuevas 
posibilidades  que  nos  ofrece  el  mundo  de  las  computadoras. 

En  su  elaboración  han  intervenido  especialistas  en  la  educación, 
la  didáctica,  la  música,  los  gráficos  y  la  programación,  que  han  rea¬ 


lizado  un  cuidado  producto  especialmente  pensado  para  la  edu¬ 
cación. 

Estos  son  los  motivos  por  los  que  miles  de  niños  de  todo  el 
mundo  son  verdaderos  fens  de  SPINNAKER.  Y  sus  padres  también. 

Si  Ud.  realmente  desea  que  su  ordenador  familiar  sea  una  ayu¬ 
da  útil  para  el  futuro  de  sus  hips,  recuerde  este  nombre:  SPIN¬ 
NAKER:  Una  divertida  familia  de  juegos  educativos. 


Gran  Va  Cartas  III.  97  K.  08028  BARCBONA 


SPINNAKER  SOfT  COR  CAMBRIDGE,  MASS  USA. 


club 

commoaore 


C' _ 

Rutinas  Basic  (1) 

Formatación 
numérica 


Abrimos  aquí  una  nueva  serie  de 
artículos  dedicada  a  las  rutinas  Basic. 
Normalmente  todo  programador  nece¬ 
sita  construirse  rutinas  para  forma- 
tar  datos  numéricos  (a  menos  que  se 
disponga  de  PRINT  USING),  efec¬ 
tuar  entradas  de  datos  controlados 
(rutinas  sustitutivas  del  comando 
INPUT),  paginar  los  listados  con 
cabeceras  y  numeración  de  páginas, 
etc. 

Lógicamente  cada  programador 
tiene  sus  gustos  y  manera  de  trabajar. 
Es  difícil  que  existan  dos  rutinas  igua¬ 
les  hechas  por  programadores  dife¬ 
rentes.  Ambas  podrán  cumplir  exac¬ 
tamente  la  misma  función,  pero 
siempre  habrán  diferencias  en  cuanto 
a  presentación,  rapidez  de  ejecución, 
eficacia,  etc. 

Las  rutinas  cambian  de  manos:  un 
programador  se  las  pasa  a  otro,  se 
publican  en  revistas,  se  extraen  de 
programas  ajenos,  etc.  Cuando  una 
rutina  llega  a  mis  manos,  lo  primero 
que  intento  hacer  es  mejorarla,  cosa 
unas  veces  posible  y  otras  no.  Lo  que 
es  más  factible  es  modificar  para 
adaptarla  a  una  filosofía  de  trabajo 
más  particular.  Pretendo  que  el  lector 
haga  lo  mismo:  no  limitarse  a  utilizar 
la  rutina  sino  intentar  mejorarla  u 
optimizarla.  Espero  dentro  de  pocos 
meses  ver  en  esta  revista  una  nueva 
sección  titulada:  Rutinas  Basic  Mejo¬ 
radas. 

Formatación  numérica 

Vamos  pues  a  atacar  la  primera  de 
las  rutinas,  la  FORMATACION 
NUMERICA.  Para  imprimir  la  varia¬ 
ble  numérica  A  basta  con  efectuar 
PRINT  A.  Si  la  queremos  imprimir 
en  una  columna  concreta  podemos 
hacer  PRINT  TAB  (10)  A.  Nos 
podemos  complicar  más  la  vida  si  lo 
que  queremos  es  realizar  un  listado 
con  una  columna  de  cantidades 
numéricas  alineadas  por  la  derecha. 
En  este  caso  la  instrucción  sería: 
PRINT  TAB(10)  RIGHT$(Z2$+S 
TR$(A),15),  siendo  Z2$  una  cadena 
32/Commodore  World  Noviembre  1984 


con  un  mínimo  de  15  espacios  en 
blanco.  La  instrucción  PRINT  puede 
complicarse  todo  lo  que  queramos 
para  efectuar  una  formatación  con¬ 
creta;  pero  llega  un  momento,  por 
ejemplo  cuando  queremos  poner 
puntos  de  separación  entre  los  miles 
en  que  una  sola  instrucción  PRINT 
no  basta:  hemos  de  fabricarnos  una 
rutina. 

¿Qué  debe  hacer  la  rutina?  Le 
debemos  entregar  en  una  variable  la 
cantidad  numérica  a  formatar,  la 
rutina  debe  devolver  en  una  variable 
de  cadena  el  resultado  ya  formatado 
y  a  una  longitud  determinada.  Esta 
longitud  la  podemos  facilitar  en  otra 
variable,  llamada  variable  de  control, 
pera  que  la  rutina  inserte  los  espacios 
en  blanco  necesarios  por  la  izquierda 
para  llegar  a  esta  longitud.  En  una 
tercera  variable  podemos  entregar  el 
número  de  decimales  que  deseamos. 
Por  ejemplo  queremos  formatar  una 
cifra  con  puntos  de  miles,  dos  deci¬ 
males  y  a  una  longitud  máxima  de  15 
caracteres  (incluyendo  los  puntos  de 
miles  y  la  coma  decimal): 

MX=15:  MD=2:  B=123456.7  :  GO- 

SUB  26200:  PRINT  B$:  . 

debería  provocar  el  siguiente  resul¬ 
tado: 

*  123.456-70*  pero 
las  variables  MX  y  MD  pueden 
entregarse  en  una  sola  en  que  la  parte 
entera  indique  la  longitud  de  la 
cadena  y  la  parte  decimal  el  número 
de  decimales.  De  esta  manera  el 
ejemplo  anterior  quedaría  asi: 
MX=15.2  :  B=  123456. 7  :  GOSUB 

26200  :  PRINT  “*";  B$; . . 

Obsérvese  la  línea  26299  de  la  rutina. 
Si  efectuamos: 

MX=15.2  :  B=  123456.7  :  GOSUB 
26299. 

se  formatea  la  variable  y  se  imprime 
el  resultado  automáticamente,  termi¬ 
nando  con  un  punto  y  coma  por  si 
deben  imprimirse  más  datos  en  esta 
misma  línea.  La  impresión  se  realiza 
en  el  fichero  número  4,  que  debe  de 


estar  abierto  previamente  como  pan¬ 
talla  (OPEN  4,3)  o  impresora  (OPEN 
4,4). 

Ejemplo 

Vamos  a  ver  un  ejemplo  completo. 
Haremos  un  listado  con  tres  colum¬ 
nas:  en  la  primera  editaremos  los 
números  del  1  al  10,  en  la  segunda  el 
mismo  número  elevado  a  la  séptima 
potencia,  y  en  la  tercera  su  logaritmo 
con  cinco  decimales: 

10Z2$=‘‘  “:FORX=lTO80:  ZI$=Z2$+ 
“  “:  NEXT 

20  OPEN  4.4:  REM  LISTADO  POR 
IMPRESORA 
100  FOR  N=1  TO  10 
110  B=N:  MX=5:  GOSUB  26299 
120  B=N7:  MX=12:  GOSUB  26299 
130  B=LOG(N) :  MX=I0.5:  GOSUB 
26299 

140  PRINT  #4:  NEXT 
150  END 


1 

El  resultado  seria  el  siguiente: 

1  O’OOOOO 

2 

128 

0'69315 

3 

2.187 

F09861 

4 

16.384 

1 '38629 

5 

78.125 

1 '60944 

6 

279.936 

1 '79176 

7 

823.543 

1 '94591 

8 

2.097.152 

2’07944 

9 

4.782.969 

2’19722 

10 

10.000.000 

2’30259 

Explicación  de  la  rutina 

El  funcionamiento  exacto  de  la 
rutina,  linea  a  línea,  es  el  siguiente: 
26205:  Traspasa  a  MY  la  longitud  de 
la  cadena  de  salida  y  a  MD  el  número 
de  decimales  deseados.  A  lo  largo  de 
toda  la  rutina  MX  no  es  afectado.  Si 
no  se  indican  decimales  (IF  MD=0...) 
salta  a  26270  donde  se  hace  un  pro¬ 
ceso  especial  más  rápido  para  cuando 
no  hay  decimales. 

26210:  Inicializa  X,  que  se  usa  en  la 
línea  26235.  Redondea  B  al  número 
de  decimales  deseados  y  pone  el  signo 
en  X$  (nulo  o  signo  menos). 


26215:  Asigna  a  B1  la  parte  deci¬ 
mal  de  B.  Asigna  a  BS  el  valor 
entero... 

26220:  ...  para  eliminar  el  signo, 
que  ya  ha  quedado  en  X$. 

26225:  Comprueba  que  el  dato 
formateado  no  exceda  de  la  longitud 
indicada  como  máxima. 

26230:  Si  hay  overílow  rellena  B$ 
con  caracteres  dolar  y  finaliza  la 
rutina. 

26235:  Pone  los  puntos  de  miles 
cada  tres  dígitos. 

26240:  Si  la  parte  decimal  es  cero, 
pone  los  ceros  pertinentes  en  BIS 

26245:  Si  hay  decimales  los  asigna 
a  BIS,  fuerza  los  ceros  correspon¬ 
dientes  en  la  izquierda... 

26255:...  y  complementa  los  nece¬ 
sarios  por  la  derecha. 

26260:  Reúne  en  B$  el  signo  (X$),  la 
parte  entera  con  los  puntos  de  miles 
ya  puestos  (BS)  y  la  parte  decimal 
también  con  la  coma  ya  puesta  (BIS). 
Además  rellena  por  la  izquierda  los 
espacios  en  blanco  necesarios  (Z2S) 
hasta  llegar  a  la  longitud  solicitada  en 
MX.  fin  de  la  rutina  cuando  se  tratan 
decimales. 

26270  a  26295:  Formatación  sin 
decimales.  Ejecuta  un  proceso  muy 
similar  al  anterior  en  lo  que  a  la  parle 
entera  se  refiere.  Al  no  tener  que  tra¬ 
tar  ios  decimales  se  hace  mucho  más 
rápido. 

26299:  Segunda  posible  entrada  a 
la  rutina.  Formata  el  dato  y  lo  envía 
por  el  fichero  4,  que  debe  estar  ya 
abierto  para  pantalla  (OPEN  4.3)  o 
impresora  (OPEN  4,4). 

Obsérvese  que  a  lo  largo  de  la 
rutina  se  utilizan  una  serie  de  varia¬ 
bles  de  trabajo,  además  de  las  varia¬ 
bles  de  entrada/salida  B,  MX.  y  B$. 
Si  el  programador  utiliza  alguna  de 
estas  variables  en  su  programa,  debe 
ser  consciente  que  una  vez  haya  lla¬ 
mado  esta  rutina  de  formatación  los 
contenidos  de  las  mismas  quedaran 
alterados.  Las  variables  utilizadas, 
junto  con  la  función  que  realizan  den¬ 
tro  de  la  rutina,  son: 

MY  -  Longitud  de  la  cadena  de 
salida. 

MD  -  Número  de  decimales  desea¬ 
dos. 

XS  -  Memoriza  el  signo. 

BI  -  Parte  decimal  del  dato. 

X  -  Contador  de  puntos  de  miles. 

XI  -  Auxiliar  utilizada  en  la  forma¬ 
tación  de  los  decimales  (26210  y 
26215). 

B2  -  Auxiliar  utilizada  en  las  lineas 
26215  y  26220. 

El  próximo  mes...  otra  rutina! 


Ejemplo 

10  Z2$= " "  =  FÜRX«=  1 TO80  =  Z2$=Z2$+  "  í  SPC  ] " 

:  NEXT 

15  21$="" : FORXb1T080 ' ZI$-Zl$+"Qu ■ NEX 

T 

20  ÜPEN4,  4  •'  REM  LISTADO  POR  IMPRESORA 

100  FORN=1TÜ10 

1 1 0  B=N  =  MX=5 : G0SUB26299 

1 20  B=N 17 : MX= 1 2  =  G0SUB26299 

130  B»L0G<N> :MX=10. 5  G0SUB26299 

140  PR I NT #4 : NEXT 

150  END 

Formatación  numérica 

26200  REM  *  F0RMAT. MILES  ********** 

*** 

26205  MV=INT (MX) : MD=INT<MX*10~MV*10) 

•'  IFMD=0THEN26270 

26210  X*3  •  X 1  =  I  NT  C1 0 1t1D+ .  5  >  •  B«SGN  <  B  >  * 

I NT  < ABS  <  B ) *X 1  + . 5 ) XX 1 : X$= " "  =  IFB03THEN 

II 

26215  B2- ABS <  B ) : B 1  =  I NT  <  < B2- 1 NT < B2 > > * 

X1+.5) : B$=3TR$( INT(B2> ) 

26220  B$~R I GHTÍ  <  Bí , LEN  <  B$  >- 1 > 

26225  I FLEN  <  X$  > +LEN < B$ )  + 1 NT < ( LEN  C B$ ) 

- 1 2 /3 >  +MD+ 1 OMYTHEN26235 

26230  B$=" "  ••  F0RX-1T0MV :  B$=B $+"$'•  :  NEX 

T : RETURN 

26235  IFLEN<B$»XTHENBS»LEFT*<B$, LEN 
<B$)-X>+". "+RIGHT$<B$,X> :X=X+4:G0T02 

6235 

26240  I FB 1 =0THENB 1  $ - " ' " +LEFTÍ  < Z I $ , MD 
) : GOTO26260 

26245  B 1 #-STRf <B1) :Blf»"/" +R I GHT$ C " 0 

O0000000 " +R I GHT$  <  B 1 $ , LEN  (Bl$>-1 > > MD  > 

26255  Bl$*LEFT$í:Bl$+"  000000000" ,  MD+1 

) 

26260  B$«RIGHT$ÍZ2$+X$+B$ , MY-MD-1 >+B 

1$: RETURN 

26270  B=S'GN<B)*INT<ABS(B)  +  .  5)  'B$=STR 
f < ABS  < B  > > : B$ =R I GHTÍ ( B$ , LEN ( B$ ) - 1 ) 

26275  I FLEN <B$)>3THENB$*LEFT$<B$, LEN 
<B#>-3>+". "+RIGHT*<BÍ,3) 

26280  I  FLEN  ( B$ ')  >7THENBÍ =LEFT $  (.  B$ ,  LEN 

C'B «)-?>+". "+RIGHT*<B$,7> 

26285  I FB<0THENBí = " - " +B$ 

26290  IFLENÍBÍ )>MYTHENB$*" " : F0RX»1T0 

MV : Bí=B$+"$"  :  NEXT : RETURN 

26295  B*=RIGHTÍ<Z2*+B$rMY> •RETURN 

26299  GOSUB26200  PRINT44,  Bf ;  :  RETURN 

Commodore  World  Noviembre  1984/33 


Commodore 

en  la  cima  de  Europa 


Aprovechando  las  vacaciones  y  para 
huir  temporalmente  del  calor  veraniego, 
un  equipo  de  MICROELECTRONICA  Y 
CONTROL,  S.A.  se  dispuso  a  respirar 
aires  más  frescos.  Su  objetivo  era  nada 
más  y  nada  menos  que  escalar  y  hacer 
ondear  la  bandera  de  COMMODORE 
COMPUTER  en  la  cima  del  Mont  Blanc, 
el  pico  más  alto  de  Europa.  ¡Y  lo  consi¬ 
guieron!  Nos  han  entregado  las  fotos  que 
reproducimos  como  testimonio  del  gran 
éxito.  Sirvan  también  para  satisfacción  de 
todos  nosotros  viendo  nuestra  marca 
favorita  en  la  cúspide  de  Europa. 

Como  sabéis,  el  macizo  del  Mont  Blanc 


forma  parte  de  la  gran  cordillera  de  los 
Alpes.  Esta  situación  en  la  frontera  entre 
Francia  e  Italia,  muy  cerca  de  Suiza.  Al 
pie  del  mismo  se  halla  el  pueblo  francés 
de  Chamonix,  famoso  por  ser  el  punto  de 
partida  de  todas  las  expediciones  que 
acceden  al  Mont  Blanc  por  su  vertiente 
francesa.  Los  que  lo  hacen  por  la  italiana 
salen  de  Courmayeur.  El  Mont  Blanc  es 
un  paraíso  de  roca,  hielo  y  toma  el  nom¬ 
bre  de  su  pico  más  alto,  el  Mont  Blanc, 
que  con  sus  4.807  metros  de  altura  sobre 
el  nivel  del  mar  se  erige  además  como  el 
más  alto  de  todos  los  Alpes  y,  por  tanto, 
también  de  todo  el  continente  europeo. 


Instantánea  cerca  de  la  cumbre  tomada  durante 
la  ascensión. 


Panorámica 
del  Mont 
Blanc  desde 
la  Aiguille  du 
Midi. 


Como  referencia,  el  pico  más  alto  de  los 
Pirineos,  el  Aneto,  tiene  3.404  metros  de 
altura. 

Nuestros  expedicionarios  partieron  de 
Barcelona  el  día  28  de  julio,  recorriendo 
este  mismo  dia  (en  coche,  no  a  pie)  los  840 
kilómetros  que  los  separaban  de  Chamo¬ 
nix.  Tras  un  día  entero  de  descanso  y  pre¬ 
parativos  y,  cómo  no,  de  algo  de  turismo, 
inician  la  ascensión  el  lunes,  dia  30,  por  la 
mañana.  Los  primeros  metros  los  salvan 
mediante  una  telecabina,  por  lo  que  la 
escalada  como  tal  no  empieza  hasta  que 
llegan  a  Nid  d’Aigle,  a  2.300  metros  de 
altura.  De  aquí  ascienden  cargados  con 
las  mochilas  y  todo  el  material  hasta  el 
refugio  de  Tete  Rousse  (3.167  m.),  donde 
duermen  la  primera  noche.  El  segundo 
día  lo  invierten  en  llegar  hasta  el  refugio 
de  Gouter  (3.817  m).  A  causa  de  una  vio¬ 
lenta  tormenta  no  pueden  culminar  la 
escalada  el  tercer  dia,  como  estaba  pre¬ 
visto,  sino  que  deben  esperar  un  día  más. 
Finalmente,  el  día  2  de  agosto  consiguen 
llegar  a  la  cumbre  del  Mont  Blanc  (4.807) 
y  hacer  ondear  la  bandera  de  COMMO¬ 
DORE  COMPUTER  en  lo  más  alto  de 
Europa. 

Reciban  nuestas  felicitaciones,  y  a  ver  si 
cunde  el  ejemplo  y  alguien  se  anima  a 
plantar  nuestra  bandera  en...  el  Everest 
(¡ejem!),  por  citar  un  ejemplo... 


34/Commodore  World  Noviembre  1984 


Anbau.  62.  BARCELONA- 
.  (93)  323  03  90 
53947  FIAS  E  (ESPAÑA) 


FIRST  s  a 


SE  COMPLACE  EN  ANUNCIAR  LA 
DISTRIBUCION  DE  PRODUCTOS 

fí  commodore 


LAS  TARJETAS  DE  JE? 


10  DISKETTES 


2  DISKETTES 
(LIMPIA  CABEZAL) 


COMPARTIENDO  EXPERIENCIAS 
ENTRE  AMIGOS 


Esta  sección  está  dedicada  a  la 
colaboración  de  todos  nues¬ 
tros  lectores  y  está  dividida 
en  dos  partes: 

1)  Programación:  Programas 
y  similares. 

2)  Magia:  Trucos,  sugerencias, 
etcétera  (pág.  54). 

Habrá  premios  y  alicientes  para 
todos  los  participantes  (ver  pág.  6). 

Enviarnos  vuestra  dirección  para 
que  podáis  poneros  en  contacto 
unos  con  otros.  ¡Animaros,  chicos 
(...y  chicas)! 


Editor 


Como  indica  el 
nombre  de  este  pro¬ 
grama,  consiste  en 
una  ayuda  al  pro¬ 
gramador  tanto  en 
cuanto  en  que  sirve 
para  calcular  los  números  que  van  ligados  a  un  carácter 
programado  por  software. 

Las  teclas  que  comandan  las  distintas  órdenes  que  posee  el 
programa  son: 

D — (dibujar)  rellenan  un  hueco  del  cuadriculado  8X8  que 
aparece  en  pantalla. 

B— (borrar)  vacía  un  hueco  del  cuadriculado  que  había  ante¬ 
riormente  llenado. 

C — (compilar)  calcula  y  exhibe  las  cantidades  que  se  tras¬ 
cienden  de  la  figura  dibujada  como  una  línea  de  DATA  con 
número  de  línea  anteriormente  definida  por  el  usuario.  Cuando 


1  POKE650, 12800T0999 

990  DE-PEEK (61) +236*PEEK <  62  )  t-3  P0KE2 
52 < I NT < DE/256) : P0KE25 1 , DE-236KPEEK ( 2 
52) 

99 1  POKEDE-2 i  0 : POKEDE- 1 <  0  P0KE45 , PEE 
K(251) : P0KE46 , PEEK ( 252 ) - END 

999  DIMJ<8,8) ; FORI-0TO7 : FORH-0TO? : J< 
I,H)-79NEXTH,  I 

1 000  I NPUT ” C  CLR  3  STRRT I NO [ SPC  3DHTRC SPC  3 
LINECSPC3NUI1BER" ,  LIN 

1010  IFL I N>990QOTO 1 000 
1020  PRINT" CCLR3" 

1 030  FOR I -0TO7  PR I NT " C SPC 3C8SHIFT03C COMMH 3 
"  :  NEXT 

1040  PR I NT “ C  SPC  3  C  8C0MMV  3 " 

1050  Ra 1 065 ■ CL*0 ■ RO»0 

1060  POKER j  170  ■  B“H 

1070  GETR*IFR*a""THEN1070 

1 080  1 FH$- " i CRSRU 3 " THENH*8-40 • POKEB , 

J(CL-RO)  RO-RO-l : I Ffl< 1 065THENGOSUB 1 1 

80: GOTO 1060 

1 090  I  FR*a  "  C  CRSRD  3 "  THENRaR+40  POKEB , 
J(CL.KO) : R0*R0+1 : IFR>1352THENG0SUB1 1 
90  GOTO 1060 


el  usuario  usa  esta  función  deberá  bajar  el  cursor  (con  las 
TECLAS  DE  CURSOR)  hasta  colocarlo  sobre  la  línea  de 
DATA  y  apretar  RETURN  dos  veces.  Posteriormente  podrá 
definir  un  nuevo  carácter  si  lo  desea,  siempre  y  cuando  elija  un 
número  de  línea  de  DATA  que  NO  SEA  1  NI  mayor  que  900  NI 
igual  al  número  de  linea  de  DATA  anterior. 

Si  el  usuario  no  elige  crear  un  nuevo  carácter,  TODO  el 
programa  se  borrará  menos  la  instrucción  1  y  las  lineas  de  data 
que  definen  los  caracteres. 

Borre  la  línea  1  apretando  HOME  y  RETURN. 

Las  líneas  de  DATA  están  ya  listas  para  mezclar  (“merge") 
con  otro  programa. 

El  asterisco  señala  la  posición  actual  sobre  el  cuadriculado 
cuando  se  está  dibujando  el  gráfico  y  las  teclas  del  cursor  lo 
mueven  por  el  cuadriculado  sin  que  afecte  en  absoluto  lo 
dibujado. 


1100  I  Ffl*a  "  I CRSRL  3 " THENH-R- 1  POKEB . J 
<CL,R0)  CL-CL-l : IFCL<0THENR«R+8  CL-7 
: GOTO 1060 

1110  I  Fm$-  "  C  CRSRR  3  "  THENRaR+  1  POKEB ,  J 
( CL , R0 ) : CL-CL+ 1 : I FCL>7THENR«R-8 = CL-0 
: GOTO 1060 

1 120  I F flí* " D " THENPOKER / 160 : J<CL, R0)» 

160 : GOTOl 160 

1130  1 FRF- " B " THENPOKER , 79; J(CL<R0)»7 
9  G0T01 160 

1140  1 FR*- M C " THENPR I NT " C  CLR  3 " : GOTO30 
00 

1150  GOTO 1060 

1 160  CL-CL+1 ; R-R+l : IFCL>7THENR-R-8 : C 
L-0 

1170  GOTOl 060 

1180  R*R+320 : R0*7 : RETURN 

1 1 90  R-R-320 : RO«0 : RETURN 

3000  L I N#»STR* ( L I N ) : PR I NT " 1 4CRSRD 3  C  CRSRL  3 

"LINf , “DRTR" , 

3005  FORH-0TO7 : DT-0 
3010  FOR I "7TO0STEP- 1 
3020  I F J  <  <  7-1 ) i H ) • 1 60THENDT*DT+ < 2  TI ) 


36/Commodore  World  Noviembre  19841 


3030  NEXT 

3031  I  FBT< 1 0THENG- 1 • GOTO3034 

3032  IFDT<100THENG*2 •’ GOTO3034 

3033  G*3 

3034  DTÍ*RIGHTí  <  STRí  CDT) ,  G)  ■  PRINTDTí 
j"i"; ¡ NEXT 

3038  PR I NT " [ CRSRL  3 [ SPC  3 " ; PR I NT " RUN30 
50" 


3040  PRINT"£H0M3" : END 

3050  I NPUT  "  t  CLR  ]  QU I  ERE  C  SPC  3  DEF I N I R  t  SPC  ] 

MRSCSPC3CRRCTERES" ;  Rí 

3060  I  FRÍO  "  NO  "  THEN I  FRÍO  "SI"  THEN305 

0 

3070  I FRÍ • " S I" THENRUN999 
3080  PR I NT " C  CLR  31": GQTO990 


Verbos 


C-64 


Hola  amigos  de 
Commodore: 

Antes  de  hablaros 
del  programa  que  os 
envío  deseo  deciros 
que  estoy  muy  con¬ 
tento  con  vuestra  revista,  pero  que  yo  os  agradecería  que  entre 
los  programas  que  editáis  hubieran  más  dedicados  a  los  estu¬ 
diantes,  yo  os  animo  a  vosotros  y  al  resto  de  asiduos,  entre  los 
cuales  creo  que  hay  bastantes  estudiantes,  que  escríban  pro¬ 
gramas  de  matemáticas,  gráficas,  física,  química,  etc... 

Hace  muy  poco  que  tengo  mi  Commodore  64  y  de  momento 
sólo  me  funcionan  correctamente  unos  pocos  programas,  del  que 
he  escogido  este  porque  es  lo  que  a  mí  me  gusta  menos  estudiar. 
El  programa  sirve  para  aprender  verbos,  en  el  listado  que  os 
envío  hay  el  verbo  Sum,  que  he  de  saberme  para  aprobar  Latín 
de  segundo,  aunque  ya  he  terminado  C.O.U. 

El  programa  se  basa  en  ir  entrando  el  tiempo  verbal  que  te 
pide  y  te  va  diciendo  a  medida  que  escribes  formas  si  están  bien 
o  mal,  al  final  te  da  la  nota.  Para  aprender  otro  verbo  es  necesa¬ 
rio  cambiar  las  sentencias  data  sin  olvidar  poner  una  C  al  final 
de  cada  una  y  una  D  al  final  de  la  última.  Seguramente  el 
programa  puede  ser  mejorado,  yo  he  pensado  en  ponerle 
música,  pero  mis  conocimientos  no  me  llegan,  si  alguien  lo 
mejora  ruego  que  me  lo  comunique,  mis  señas  son:  Manuel 


10  D1MBÍ<123 
20  J-0  X-0 

70  Cí v0)«"  1NDICHT  IU"  ’ Cí<l >«"SUBJUNTI 
U"  Cí<23-"IMPERRTIU" 

80  PRINT" CCLRJ ” ; FÜRVMtí 102 : PR1NT" C6CRSRR3 
t  RVSON 3 " J  Cí  t  V> ; " t RVSOFF  3 " 

80  Bít0>-"PRE8ENT"  Bí < 1 ;»"PRETERITCSPC3 
I MPERFECTE " : Bí  <  2  > • " F  UTUR  C  SPC  3  S I MPLE " 

91  Bí(3J""PRETERlT[sPC3PEKFECTE" : BíC 
4 ) »  " PRE  TER I T  C  SPC  3  PLUSCURMPERFECTE " 

92  Bí ( 5  3  * "FUTUR  C SPC 3FINT ER 1 0R "  ■  Bí  C6>« 

Vf(0>  Bí<7)-Bí<i; :Bí<b;*»BÍ<3J :BÍ<93« 

Bí(4> 

93  bí':i0,)=bí<.ü;  Bíai)»Bí<2) 

100  PR  I  NT"  t  CRSRR  3  C  RVSON  3 "  ,  Bí  <.  X )  i  "  C  RVSOFF  3 
"  X-X+l 

120  RERDRÍ  IFRí * " C " THENGOT 0150 

122  I FRÍ * " D " 3  HENGOT 0200 

130  INPUTRlí ■  IFHlíOHí THENG0TÚ155 

1 40  PR I N  T " C  CKSRU  3  C  24CRSRR  3  £  R VSON  3  BE  £  RVSOF F  3 

"GOTO 120 

150  IFX»60RX» 1 0THENNEXTV 

151  IFX<12THENÜOTO100  ENB 

155  J-J-t-1  PRINT"[CRSRUH24CRSRR3[RVSON3 
MRLRMENT £ RVSUFF 3 " - J  ¡  GÜT01 30 


López  i  Serres.  C/  Sant  Roe,  7  Maspujols-Tarragona.  Telf.: 
81-51-94. 

Ahora  os  explico  un  poco  las  líneas  del  programa: 

En  la  10  dimensiona  la  matriz  B$  en  12,  para  almacenar  los 
tiempos  verbales. 

En  la  20  igualo  la  J  y  X  a  0  para  hacerlas  servir  como  control 
de  fallos  y  control  de  tiempos  verbales.  En  la  70  se  almacenan 
los  modos  verbales.  En  la  70  controlamos  y  visionamos  los 
modos  verbales. 

Las  líneas  90  a  93  clasifican  los  tiempos  verbales  y  la  100  los 
controla  e  imprime  en  pantalla. 

La  120  lee  la  forma  verbal  correcta  y  comprueba  si  es  el  final 
de  una  línea. 

En  la  122  comprueba  si  hay  más  formas. 

En  la  130  se  nos  pide  una  palabra,  si  coincide  se  ve  “be” 
(bien)  y  si  no  “malament”  (mal)  junto  con  el  total  de  errores 
(línea  155). 

En  las  líneas  160  a  198  se  encuentran  las  formas  verbales 
correctas  en  la  200  se  calcula  la  nota. 

Para  que  se  ejecute  otro  verbo  es  necesario  cambiar  las  sen¬ 
tencias  DATA  en  el  orden  correcto  y  poner  una  C  al  final  de 
cada  una  o  una  D  si  es  la  última,  además  en  otros  idiomas 
cambian  el  nombre  de  los  tiempos  verbales  o  hay  más  como  por 
ejemplo  en  el  catalán,  en  tal  caso  hay  que  hacer  los  ajustes 
oportunos. 


1 60  DRTRSUM , ES, EST , SUMUS , EST IS . SUN T , 
C 

1 70  DRTRERRM , ERRS , ERRT . ERMMUS , ERRTIS 
, ERRNT , C 

180  DRTRER0, ERIS, ERIT . ERII1US, ERITIS» 
ERUNT , C 

190  DRTRFUI ,FUISTI > FUI T, FUI MUS, FUI ST 
IS, FUERUNT-FUERE , C 

191  DRThFUERRM, FUERHS, FUERHT,  FUERRMU 
S , F  UERRT 1 S , FUERHNT , C 

1 92  DRTHFUER0, FUER I S , FUER I T , FUER I MUS 
, FUER ITIS, FUER INT ,C 

193  DRTRSIM, SIS, SIT , SIMUS, SITIS, SI NT 
,C 

1 94  DRTRESSEM , ESSES . ESSET , ESSEMUS , ES 
SETI8,ESSENT,C 

1 95  DRTRFUER I M , FUER I S , FUER  I T , F  UER I MU 
S, FUERIT1S, FUER INT , C 

1 96  DRTRFUI SSEM , FU I SSES , FU I SSE T , FUI 6 
SEMUS , FU I SSE  T I S , F  U I SSENT , C 

197  DRTRES,ESTE,C 

198  DHTREST0, ESTO, EST0TE, SUNTQ, D 
200  N»< (66-J 3266)* 1M  PRINT "[RVSON 3 NU 
TR  CRVSOFF3i:SPC3',,N  END 


Manuel  López  ¡  Serres 
C/  Sant  Roe,  7  -  2»  1.a 
Maspujols 
(Tarragona) 


ICommodore  World  Noviembre  1984/37 


Explicación  del  pro- 

Alejandro  Cantó  grama. 

C/  Doctor  Gadea.  1-2»  E+F  Lineas  5,  10  y  25 

Alicante  03003  Define  varjab|es 

-  20-80  Dibuja  bo¬ 
leto. 

90-110  Pregunta  probabilidades  para  las  tres  variables. 
120-160  Calcula  resultados  y  los  imprime  en  el  boleto. 
200-230  Comprueba  si  queremos  nuevo  boleto. 

250-ftnal  Presentación. 

Las  variables  más  importantes  son: 

— J.  Comprueba  si  queremos  parar  el  programa. 

— AS,  B$.  C$.  Dibujan  el  boleto. 

— A I ,  A2,  AX.  Probabilidades. 

— 6$.  Dibuja  la  presentación. 

— POS.  Imprime  los  resultados  en  el  boleto. 

El  programa  está  hecho  de  forma  que  si  al  presionar 
RETURN,  después  de  cada  INPUT  las  probabilidades  son 
para:  t 


5  J=0  ÜÚSUB250 

10  ri*-" ECOMM73 ECOMMFl J ESHIFTCJ EC0MMR3 
E  SH I F  TC  3  E  C0MI1R  3  E  SH I FTC  3  E  C0MI1S 1 "  " 

CSHIFTB3CSPC 3  ESHIFTB3ESPC3ESHIFTB3CSPC3 

CSHIFTB J " : C$“" EC0MMZ3  ESHIFTC3  ECÚMME3 
ESHIFTC3ECOMME3ESHIFTC3CCOMMX3" 

20  PRINT"ECLR3",THBa4)"ERED3ERVSON3 
ClU I N I ELAS "  ^ PR I NT T AB (1 5 3' ' E C0MM4 3 E CRSRD 3 
ESPC31 ESPC3XESPC32E8PC3 " 

25  P0*«""  Hl*51  A2-30  HX-19 
30  PRINTTABC 15>A» • FÜRP-1T014 ¡ PRINTTR 
B( 13)BÍ  NEXT  PRINTTHBC 15JC$ 

40  PRINT"EHÜM3E 3CRSRD J "  F0RP- 1 T0 1 4 
50  IFP<10THEN70 
60  GCITO00 

70  PRINT"  ECOMI163  “  >  P  ¡  "CCOMMbJ - 

- "NEXT 

00  PRINTP,"lCÚMMb3 - "  NEXT 

90  I NPUT  "  L  CÜMfltí  3  E  CRSRD  3  PR0BHB I L I  DFlDtSPC  3 
DEESPC3'  rCSPCJENCSPCJX’SHl 


100  I NPUT " C CRSRD 3 PRÜBAB ILIDADE SPC 3 DE 

C SPC 3 ' X ' [ SPC 3 EN C SPC 3 X " i PX 

llü  1 NPUT " [ CRSRD  3  PRÜBAB I L I DHDE  SPC  3  DE 

£SPC3'2' CSPC3ENCSPC3X" ;A2 

120  I FR 1 +A2+AXO 1 00  T HEN20 

130  F0RP-1T014  PR-lNTtRND(03»100>+l 

PÜí ■PU$+"[  CRSRD  3 "  A2- <  A 1 +AX  > 

140  I FPRO  A 1 T  HENPR 1  NT  "  C  HOfl  3  [  3CRSRD  3  " 
jPOti "E4CRSRL3ECVNJ1" ;NEXT: GÜTU200 
1 50  I FPR>«R2THENPR I NT " [ HOM  3 E 3CRSRD 3 " 

, P0*. " ECVN32"  NEXT : ÜOTO200 

160  PR I NT " C HÜM 3 E 3CRSRD3 " < P0$ / "12CRSRL3 

ECVN3X"  NEXI  UUTU200 

200  PK I NT " C  HÜM  3  C  4URSRD 3 " / TABC20) < "[WHT3 
ClTRR?" 

210  0ETH*: IFA*-"S"THEN10 
220  I FA*<> " N " THEN2 1 0 
230  OOSUB250 

250  PÜKE53200 -  0  P0KE5328 1 , 0 : PR 1  NT " C VEL 3 
í  CLR  3  PR0GRHMADÜ  E  SPC  3  POR  I  SPC  JALE JANDR 
0  E  SPC  3  CHNTÜ  C  SPC  3  « t  SPC  3 C0MPRNV " 

260  PR I NT  PR I NT  PR I NT  I  ABC  1 2 > " PHRR C  SPC 3 
C0MM0D0RE  E  SPC  3  WORLD  E 1 0CRSRD  J " 

290  IFJ*=9THENEND 

300  G*-"E RVS0N 3  E  SH I FT£  3  E  SPC  3 1 C0MM* 3  E  RVSOFF  J 
f  SPC  3  E  RVSON 3 1  SPC  3  C  RVSOFF  3  C  SPC  3 [ RVSON  3 
E  SPC  3  E  RVSOFF  3  L  SPC  3  [  RVSUN  3  C  SPC  3  C  RVSUF  F  3 
[ SPC  3  C  RV8ÜN 3 1  SPC  3  C  RVS0FF  3  E  SPC  3  E  RVSUN  3 
E  SPC  3  E  RVSOFF  3  E  SPC  3  E  RVS0N  3 1  SPC  3 ERVSÜFF  3 
E  SPC  3  E  RVS0N 3  C  SSPC  3  E  RVSOFF  J  E  SPC  3 1  RVSUN  3 
t  SPC  3  E RVSOFF  3  £  3SPC 3 1  RVSUN  3  E 3SPC 3 1 RVSOF  F  3 
E  SPC  3 [ R VSON  3ESHIPT£3E  SPC  3  E  RVSÜFF  3CSHIFT£3 
" : GOSUB330 

310  G8» " E RVSON 3  C  SPC  3  C  RVSOFF  J  E  SPC  3  E  RVSON  3 
£ SPC  3  C RVSOFF  3 [ SPC  3  E RVSON  3  E  SPC  3  E  RVSOF  F  3 
E  SPC  3  E RVSON  3  C  SPC  3  C  RVSOFF  3  E  SPC  3  E RVSUN  3 
E  SPC  3  E  RVSOFF  3  [  SPC  3  C  RVSON  3 1  SPC  3 1  RVSÜFF  3 
C  COMMB 3  C  RVSON  3  C  SPC  3 1  RVSOF  F  3  E  SPC  3  E  RVSON 3 
E  SPC  3  E  R VSUF  F  3  E  SPC  3  E  RVSON  3  C  SPC  3  C  C  OMI1T  3 
£  R VSOF  F  3  E  2SPC  3  E  RVSUN  3  E  SPC  3  E  R VSOFF  3  E  3SPC  3 
£  RVSON  3  £  SPC  3  E  CÜMMU  3  E  SPC  3  E  RVSÜFF  3  C  SPC  3 
C  CQMM*  3  C  RVSON  3  E  SPC  3  E  CÚMM* 3 " ■ GÚSUB330 
320  Qf - " [CUMM*  3  C  RVSON 3  £  SPC  3  £  RVSOFF  3  £  SH I FTZ 3 
£  SPC  3  E  RVSON  3  £  3SPC 3  £  RVSOF  F  3  £  SPC  3  £  RVSUN  3 
£  SPC  3  £  RVSOFF  3  £  SPC  3  £  RVSON  3  E  SPC  3  E  RVSOFF  3 
£  SPC  3  E RVSON  3  £  SPC  3  £  RVSOFF  3  E  SPC  3  £  RVSON  3 


(Automatic 

^  calling  unit),  la 

unidad  de  llamada  au- 
f  tomática  es  un  dispositivo 

que  permite  que  nuestro  modem 
marque  automáticamente  el  número 
de  teléfono  de  la  red  con  la  que  que¬ 
remos  conectar.  De  este  modo  nos 
evitamos  tener  que  marcar  a  mano 
una  y  otra  vez  esperando  que  deje 
de  estar  comunicando. 

A/D.— Son  las  siglas  de  Analó¬ 
gico/Digital,  indican  la  conversión 
de  uno  a  otro  sistema.  En  nuestros 


-•'equipos  unos  conversores  A/D  se 
encargan  de  leer  la  posición  de  los 
mandos  de  juego  tipo  paddle. 

ADA. — Es  un  lenguaje  de  alto  nivel 
para  procesos  en  tiempo  real.  Fue 
desarrollado  en  1983  por  un  cientí¬ 
fico  de  la  universidad  de  Nueva 
York  para  el  departamento  de 
defensa  de  los  Estados  Unidos.  Su 
nombre  es  el  de  Augusta  Ada  Byron, 
hija  de  Lord  Byron,  que  se  considera 
la  primera  programadora  del  mundo. 

ADC. — Conversor  analógico/digi¬ 
tal  (ver  A/D). 

Add-on. — Accesorios,  son  circui¬ 
tos  o  sistemas  periféricos  que  al 
conectarlos  al  ordenador  incremen¬ 
tan  su  memoria  o  prestaciones. 


ADDR.— Puede  ser  la  abreviatura 
de  dirección,  direccionamiento,  re¬ 
gistro  de  dirección  o  sumador. 

AL. — (Assemblcr  Languaje),  len¬ 
guaje  ensamblador.  Es  el  lenguaje 
más  cercano  al  código  máquina  que 
todavía  puede  ser  comprendido  por 
el  ser  humano,  ya  que  utiliza  códigos 
mnemónicos  que  recuerdan  fácil¬ 
mente  la  función  del  cada  instrucción. 

Alfanumérico. — Relativo  a  juegos 
de  caracteres  que  contienen  letras, 
números  y  normalmente  otros  carac¬ 
teres  como  símbolos  de  puntuación. 

ALGOL. — (ALGOrithmic  Langua- 
ge),  es  un  lenguaje  utilizado  principal¬ 
mente  para  expresar  programas  de 
ordenador  con  algoritmos. 


38/Commodore  World  Noviembre  1984 


CSPCK  RVSOFF  3CSPC3C  RVSON  3 [ SPC  3  C  2C0MMT  3 

[RVSOFF 3  C SPC  3  C  RVSON 3 C  3SPC 3 [RVSOFF 3 [SPC 3 

C  RVSON  3  C  SPC  J  [  RVSOFF  ]  [  SPC  3  [  RVSON  3  [  SPC  3 

[ RVSOFF  3 [ SPC  3 [ RVSON  3 [ SH I FT£  3 [ SPC  3  C RVSOFF  3 

[ SH I F  T£  3 " : GOSUB330 

325  00T0355 

330  G*-"[4SPC3"+G* 

340  FORV-ITOLENCO») 

350  PRINTR1GH Tf (0*< V) í "[ CRSRU 3 “ ¡ NEXT 


: PRINT : RETURN 

355  PR I NTTHB  <1 2  > " PULSfi [ SPC  3  UNH [ SPC  3  T 
ECLH" 

360  FÜRLFle556y6TO56015:  UETPf  IFR*»“" 

THEN370 

365  RETURN 

370  POKELfUZNEXT  :Z"Z+1  IFZ-255THENR 
ETURN 

360  GÜTOJ60 


Super  Basic 


VIC-20 

sin  o  con  ampliación 


Os  envío  en  pro¬ 
grama  escrito  en  có¬ 
digo  máquina  que  per¬ 
mite  introducir  algunas 
variantes  al  BASIC 
del  VIC-20. 

La  primera  parte  del  programa,  y  la  más  importante,  es  una 
reproducción  de  una  corta  rutina  situada  en  la  ROM  BASIC. 
Esta  se  encarga  de  gestionar  los  saltos  a  las  distintas  sentencias 
del  BASIC.  La  primera  parte  se  compone  de  dos  bloques,  la 
rutina  y  una  tabla  de  saltos.  La  tabla  contiene  la  dirección  de 
llamada  de  las  diferentes  sentencias. 

La  sustitución  de  la  rutina  original  por  esta  se  consigue  sin 
más  que  variar  un  puntero  que  está  en  las  direcciones  0308h- 
0309h  de  forma  que  apunte  al  programa. 

Como  la  nueva  tabla  está  en  RAM  podemos  efectuar  en  ella 
los  cambios  que  queramos,  para  que  apunten  a  posiciones  de 
RAM  en  donde  podemos  colocar  variantes  de  la  instrucción. 
Este  primer  bloque  ocupa  200  bytes  (direcciones  1000  h  a 
10C9). 

A  modo  de  ejemplo  he  incluido  4  nuevas  sentencias  que  no  son 
más  que  variantes  de  otras  ya  existentes: 

PRlNT@x,  y  "comentarios".  Imprime  en  cualquier  parte  de 
la  pantalla  (indicado  por  x  e  y)  los  clásicos  PRINTS.  Se  puede 
utilizar,  por  lo  demás,  con  todas  las  variantes  del  PRINT 
original. 

INPUT@x,  y  "comentarios";  lista  de  variables.  Lo  mismo 
aplicado  a  la  sentencia  INPUT. 

LOAD#“nombre  del  programa".  Mezcla  dos  o  más  progra¬ 
mas  cargados  desde  el  DATASSETTE.  La  única  condición  es 
que  los  números  de  linea  sean  distintos.  En  el  caso  de  que  se 
mezclen  más  de  dos  programas  hay  que  tener  cuidado  con  el 
orden  de  la  numeración,  porque  el  VIC  no  lo  reestablece. 

RESTORE  (número  de  línea).  Es  un  RESTORE  calculado  a 
una  determinada  linea  data  del  programa.  Admite  variables  y 
expresiones  como  número  de  línea.  Utilizado  con  tablas  DATA 
grandes  permite  acceder  a  cualquier  dato  mucho  más  rápida¬ 
mente,  pues  no  se  tiene  que  leer  cada  vez  la  tabla  desde  el 
principio. 

Y  eso  es  todo. 

Si  os  decidís  a  fabricar  vuestras  propias  variaciones  tened  en 
cuenta  lo  siguiente:  Para  que  el  salto  se  efectúe  tiene  que  haber 
una  sentencia  original  del  BASIC  del  Vic,  es  decir,  que  si  que¬ 


réis  introducir,  por  ejemplo,  un  comando  que  cambie  los  colo¬ 
res  del  borde,  pantalla  y  caracteres,  debéis  precederlo  de  una 
sentencia  existente.  Una  buena  solución  sería  DEF  COLOR  a, 
b,  c.  La  sentencia  DEF  es  reconocida  independientemente  de 
FN,  y  por  lo  tanto  se  puede  interceptar. 

En  el  punto  de  la  nueva  entrada  una  manera  de  examinar  si 
existe  o  no  variación  sobre  la  sentencia  original  es: 

Entrada  JSR  0079 

CMP  Nuevo  carácter 
BEQ  Variación 
JMP  Comando  normal 
Variación.... 


Este  método  permite  sólo  detectar  un  carácter,  para  detectar 
expresiones  enteras,  se  debe  programar  un  sistema  más 
elaborado. 

A  continuación  incluyo  una  lista  de  las  sentencias  en  el 
mismo  orden  en  que  aparecen  en  la  tabla  para  que  podáis  inter¬ 
pretar  cualquier  comando: 

END,FOR,NEXT,DATA,INPUT:INPUT,DlM,READ,LET,GO- 

TO, RUN.IF, RESTORE, GOSUB, RETURN, REM, STOP, ON, 

WAIT,LOAD,SAVE,VERIFY,DEF,POKE,PRINT, PRINT 

CONT,LIST,CLR,CMD,SYS,OPEN,CLOSE,GET,NEW,SGN 

INT,ABS,USR,FRE,POS,SQR,RND,LOG,EXP,COS,SIN,TAN, 

ATN,PEEK,LEN,STRS,VAL,ASC,CHRS,LEFTS,RIGHTS, 

MIDS.GO. 

Si  decidís  publicar  mi  carta  seria  interesante  que  incluyerais 
un  listado  en  ensamblador  del  mismo  programa  y  un  DUMPde 
la  tabla  de  saltos,  yo  no  os  lo  puedo  enviar  porque  no  tengo 
impresora. 

Bueno,  eso  es  todo.  Me  despido  esperando  que  encontréis  el 
programa  interesante  y  que  programéis  un  montón  de  nuevos 
comandos  para  vuestro  VIC. 

P.D.:  Me  olvidaba  de  deciros  que  el  programa  está  situado  en 
las  direcciones  1000  a  1 1 A5  y  que  por  lo  tanto  los  que  dispongan 
de  ampliación  de  más  de  SK  tienen  que  introducir  antes  POKE 
641,0:POKE  642,32:POKE  648,30:SYS  64824.  Esto  aísla  3.5  K 
contra  sobreescritura  por  el  BASIC.  Los  que  utilicen  un  VIC 
estándar  pueden  probar  con  POKE  641,0:POKE  642,18:SYS 
64824,  esto  les  quitará  unos  500  bytes  al  principio  de  la  memo¬ 
ria  del  usuario.  (Yo  no  tengo  ese  tipo  de  problemas  ¡¡¡Mi  VIC 
tiene  8K  de  RAM.  claro,  entre  las  direcciones  A000  y  BFFFÜ! 


Marcos  Gregori 
Camping  "CACTUS". 
I’eñiscola  (Castellón) 


REM 

REM**************** 

REM*  SUPER  fcHSIL  * 

REM*I1HRCÜS  GREGORI* 

REM*  14  7  «4  * 

REM**************** 

REM 

REM 

FURT-40S6 I 04515  REHBFl  POKET, H : NEXT 


9  SVS4096 

10  DHIR162, 14/ 142,8/3/ 162, Ib, 142,3,3 
,36 

11  OMÍHl0b,t)-3,32,  115,0,32,23,  Ib,  76, 
1/4 

12  DMfHiyy, 240, bU, 233, 128,144, 17,201 
,35, 1/6,23 

13  DHTH16, 168, 185,87,18,72, 185,8b,  Ib 

,  72,  76 


ICommodore  World  Noviembre  1984/39 


14  IlHTH  115,0,76/  165.201,201,58,240.2 
14,  7b.  8 

15  bHlH¿07,¿Ol,75,200,249,  32,  115,0,  1 
69, 1 b4 , 32 

16  bH ( H¿55 , 206 ,  7b,  160,200.56, 165,43, 
233, 1, lb4 

17  D8TH44, 17b. 1,136, 133,65, 132,66,96 
,48,200 

18  D8T865, 193, 23, 205, 247, 280, 164,203 
,249, 16, 128 

19  DflTli208, S, 204,  lb4, 201, 159,20o,  112 
,200,39,201 

20  ÜH  F  8 1 2 , 1 7 , 1 30 , 200 , 203 , 200 , 58 , 20 1 » 
46,200, 74 

21  D8T8201 ,44,216, 123, 17,82,225,97,2 
25,178,211 

22  D8r835,216, 127,202,233, 16,86,200, 
155, 136,93 

23  D8IH198, 133,202,38,225, 186,225, 19 
5,225, 122,203 

24  D87865, 138, 57, 220, 2U4, 220, 88, 220, 
0,0,125 

25  D8TH21 1 , 150,21 1 , 1 13,223, 148,224,2 
34,217,237,223 

26  D8I897,226, 104,226, 177, 226, 1 1 , 227 
,13,21b, 124 

27  DHF821S, 101,212, 173,215, 139,215,2 
36,214,0,215 

28  DMTH44. 215, 55, 215,32, 155,215,134, 
251,32,241 

29  DH78215, 134,252,224,22, 176,6, 165, 
251,201,23 

30  DAT H 144, 3,  76, 72, 210, 168,24,32,240 
,255,32 


31  D8T8253, 206, 36,32, 121,0,201,64,24 
0,3,76 

32  D8T8160,202.32.202, 16, 76, 160,202, 
32, 121,0 

33  UnrH20l , 64, ¿40, 3, 76, 191 , 203, 32, 20 
2, 16,32 

34  D8T8121, 0,76, 191,203,32, 121,0,201 
,40,240 

35  DAT 83, 76  29, 200, 32, 241 , 20b- 32,247 
,215,165 

36  B8T820, 133,63, 165,21,133,64,56,32 
, 156,255 

37  BHT81 34, 251, 132,252, 160, 3, 177, 251 
, 197,63,208 

3b  D8T81?, 160,4, 177,251, 197,64,208,9 
, 165,251 

39  D8TH133,b5, 165,252. 133,66,96, 160, 
4, 177,251 

40  D8TR197.64, 144,13,200,39,160,3, 17 
7,251. 197 

41  BHl8b3, 144,3, 76, 119, 17, 168,2. 177, 
251 , 133 

42  1)8 r 8254 ,  lb0, 1 , 177, 251 , 133, 253, 5b, 

165.253.233 

43  1)8781,133,251, 165,254,233,0, 133.2 
52,76,45 

44  I)8TH1?,  162. 17,7o,55, 19b, 32. 121,0, 

201,35 

45  DHT8240, 3, 76, 101,225,230, 122,  165, 

45.56.233 

46  DHTR2, 133,251,165,4b, 133,252, 169, 
0, 133, 10 

47  087832,209,225. 165. 18, lb6,25l , 164 
,252,7b, 114 

48  D8TR225, 114 


Dibujo/Teclado 


C-64 


Me  dirijo  a  vosotros 
con  la  familiaridad 
que  supone  el  ser  sus- 
criptor  de  la  revista  y 
estar  disfrutando  con 
los  diferentes  artícu¬ 
los  que  presentáis  cada  mes  y  que  son  enseñanzas  prácticas  que, 
poco  a  poco,  dan  un  mayor  conocimiento  sobre  las  prestaciones 
de  los  ordenadores  personales  y  que  hacen  vislumbrar  las  dife¬ 
rentes  aplicaciones  a  las  que  cada  uno,  con  su  imaginación, 
pueda  llegar. 

Bajo  mi  punto  de  vista,  el  enfoque  que  dais  a  la  revista, 
dirigida  a  principiantes  y  usuarios  de  ordenadores  personales, 
no  profesionales,  es  buena  y  os  animo  por  ello  a  continuar  este 
camino  y  mejorarlo,  si  cabe. 

Dentro  de  la  malla  de  puntos  de  alta  resolución  (320X200)  se 
puede  desplazar  un  punto  inicial  que  se  debe  definir  al  principio 
por  sus  coordenadas  (x:  valor  hasta  320/y:  valor  hasta  200)  y 
que  se  desplaza  pulsando  las  teclas  I  (  ,  K  i  ,  J  — r  L— ;  o  bien, 
en  diagonal  pulsando  alternativamente  I-L,  K-L,  K-J,  J-l. 

Si  se  desea  saltar  a  otro  punto,  debe  pulsarse  la  tecla  B. 


1  REM«**«t  DIBUJO  DESDE  EL  TECLADO  i 

*•** 

2  PRINT"CCLR3"  PRINT ¡PRINT: PRINT  PRI 
NT  PRINT 

3  PR I NTT8B  (  8  ) )  “  C  RVSCiN  3  D I  BU  JO  [  SPC  3  DES 
DE  C  SPC  3  EL  í SPC  3  TECLADO  C  RVSÚFF  3 " 

4  FOR  W-Ü  TO  1000  NEXT  U  • L-0 

5  PRINT" ICLR3 " ; PRINT SPRINT : PRINT ¡ PRI 
NT  PRINT 


Aparecerán  en  pantalla  las  coordenadas  del  último  punto  ocu¬ 
pado  por  el  cursor  y  que  sirve  de  referencia,  así  como  una  serie 
de  opciones  a  elegir;  comenzar  por  otro  punto,  borrando  lo 
anterior  o  permaneciendo  en  pantalla  lo  dibujado  anterior¬ 
mente.  En  ambos  casos  se  pierden  las  nuevas  coordenadas. 

Comentarios  del  listado. 

1-  4  Presentación. 

5-  20  Petición  de  datos.  (En  4  y  7  se  establece  un  contador 
que  se  utilizará  posteriormente  para  borrar,  o  no,  el 
“BIT  MAP”). 

35-  70  Protocolo  de  entrada  en  alta  resolución.  (En  55  se 
determina  el  condicional  mediante  el  contador). 

75  Dibuja  el  punto  pedido. 

85  Inserta  la  repetición  de  cada  tecla  pulsada. 

90-  140  Dibuja  cada  punto  según  la  tecla  pulsada. 
1000-1600  Bucle  para  dibujar  en  alta  resolución. 

2100  Para  salir  de  alta  resolución. 

2200  Para  entrar  en  la  forma  “carácter  standart”  de  la 
pantalla. 

2300-2530  Presentación. 


7  OC+1 

10  I NPUT " COORDENADAS [ SPC  3 PUNTO C  SPC  3  C 
0F1IENZ0";X1,V1 

20  PR1NT"[CLR3" ¡PRINT ¡PRINT -PRINT ¡PR 
INT ¡ PRINT  PRINT 

30  PRINTT8BU0), " ESPERE [ SPC 3 UN C SPC 3 (1 
OMENTO" 

35  FOR  W»0  T0  500: NEXT  W : PRINT" CCLR] 


J.M.  González  Uñarte 
C/  Umbe,  5-5»  c-drcha. 
Telf.:  (94)  469  OS  69 
Guecho  (Vizcaya) 


40/Commodore  World  Noviembre  19841 


4ü  BRSE*2f 4096 : POKE  53272, PEEK <53272 
;OR  6 

50  POKE  53265, PEEKC53265)  GR  32 
55  IF  C>1  THEN  70 

60  FOR  I-BRSE  TO  BRSE+7999 :  POKE  1,0: 

70  FGR  1-1024  TO  2023  POKE  I,3:NEXT 

75  X-Xl :V-V1 ¡GOSUB  1000 

00  GET  X*  IF  XÍ-" "THEN  80 

85  POKE  650,128 

90  IF  X*-" I" THEN  V-V-l 

100  IF  X»-"K"THEN  V-Y+l 

110  IF  X#-"J"THEN  X-X-l 

120  IF  XS-"L"THEN  X-X+l 

130  IF  X*-"B"THEN  2100 

140  GÚSUB  1000 

200  GOTÜ80 

210  END 

1000  R0-INT(V/8) 

1100  CH-INT (X/8) 

1200  LN-V  FINO  7 
1300  BI-7-<X  HND  7) 

1400  BV-BHSE+RO4320+CH48+LN 
1580  POKE  BV,PEEK<BV)0R(2TBI> 
lb00  RETURN 

2100  POKE  53265, PEEK < 53265 ) HND  223 


Simon’s 


Supongo  que  todos 
conocéis  el  juego  de 
sonidos  y  colores  “SI¬ 
MON",  pues  bien, 
este  juego  es  una  imi¬ 
tación  del  mismo>pero 
en  lugar  de  tener  que  acordarse  de  colores  y  sonidos,  hay  que 
recordar  números. 

En  la  linea  40,  podéis  cambiar  el  1000  por  un  número  más 
bajo  o  más  alto  (cuanto  más  alto,  el  número  estará  más  tiempo 
en  pantalla,  y  cuanto  más  bajo,  lo  contrario). 

El  único  fallo  que  encuentro,  es  que  a  los  9  números  que  te 
acuerdes  no  puedes  continuar.  Yo  no  lo  he  podido  solucionar, 
pero  te  reto  a  que  lo  intentes  arreglar  tú  mismo. 


Silvia  Grandio  Luqui-  (12  años) 
C/  (  astilló,  8.  Piso  2«-2* 
Barcelona-21 


1  P0KE53281 , 0 

3  POKE53280, 0 

4  PRINT"CCLR3" 

3  PR I NT " C  WH  T  3  C  CRSRD  J  C 1 4SH I F  TC  3  444S I M 
0N444C 14SHIFTC3" 

10  OINT(RND(Z>*9> 

20  D-104D+C 

30  PR I NT " C CRSRD ]"D 

40  FORX-1TO1000  NEXTX 

50  PRINT” [CLP] ” 

51  PRINT" CCRSRD3  í 14SHIFTCI444S IM0N44 
*C  14SHIFTC3 " 

60  INPUT"CCRSRD3",N 
70  IFN-DTHEN10 

80  PR I NT " C CRSRD I ERROR , ERA : "D : D=0 : I NP 
IJT" CCR3RD30TRRISPC3 VEZÍ3/N) ",S$: IF3» 
-"S"THEN1 


2200  POKE  53272, <PEEK(53272)RND240)O 
R4 

2300  PRINT" CCLR) " : PRINT : PRINT ¡ PRINT : 

PRINT : PRINT : PRINT : PRINT 

2400  PRINT" RHORH  C  SPC  3  E  S  Tfi [ SPC  3  E N  C  SPC  3 

EL C SPC 3 PUNTO! SPC 3 " ; X, V ■ PRINT ;PRINT : P 

RINT : PRINT : PRINT ; PRINT 

2410  PRINT" PHRH !  SPC  3 COMENZRR C8PC3CON 

I SPC  30TRO  C  SPC  3  PUNTO . S  "  :  PR  I  NT : 

PRINT 

2420  PRINT " PHRH ! SPC  3  EUPEZRR  t SPC 3 DE I SPC 3 

NUEVO . N"  : PRINT: PRINT 

2430  PRINT" PHRH t SPC 3 TERM I NHR . 

. F" 


2440  GET  W$ : IF  W*-""THEN  2440 

2442  IF  W$="S“THEN  2500 

2444  IF  W*-"N"THEN  2 

2446  IF  W*-"F"THEN  PRINT"ICLR3 " : END 

2448  GO  TÚ  2440 

2450  PRINT" I ND I CRR I SPC  3  EL [ SPC  3 NUEVO C SPC 3 
PUNT0CSPC3 : " 

2500  PRINT" £CLR3 " : PRINT  PRINT : PRINT 
PRINT  PRINT : PRINT • PRINT  PRINT 
2510  PRINT" INDICRRCSPC3ELC8PC3NUEVOCSPC3 
PUNT0ISPC3 : " 

2520  FOR  W-0  TO1000 : NEXT  W 
2530  GO  TO  S 


IPIBCD©  IBÁMÁ®  ©IEEí 

Editamos 

y  comercializamos 
programas 

para  ordenadores  personales 
(CBM64,  SPECTRUM,  etc.) 


tUStUAM©© 


Necesitamos 
colaboradores  para 
traducción  de  programas 
y  manuales. 
Imprescindible 
disponer  de  equipo. 


CASA  DE  SOFTWARE,  S.A.  C/  Aragón,  272,  8»  6B 
08007  BARCELONA 
Teléfono:  (93)  215  69  52 


I Commodore  World  Noviembre  1984/41 


Invader 


El  juego  se  trata  de  ¡r 
disparando  rayos  pa¬ 
ralizantes  contra  un 
invasor  que  aparece 
por  la  parte  superior 
izquierda  con  su  nave 
que  está  situada  en  una  plataforma  en  el  inferior  de  la  pantalla, 
que  se  mueve  a  la  derecha  con  (CRSRD),  a  la  izquierda  con 
(CRSRR),  disparando  con  “Z”. 


Miquel  (iras  Carreras 
Pl.  Cois  n»  3  -  6*-3.a 
Manresa 
(Barcelona) 


VIC-20 


En  una  sola  pasada  se  puede  tocar  varias  veces  debido  a  que 
nuestra  nave  se  mueve  de  dos  espacios  en  dos,  mientras  que  el 
invasor  sólo  se  mueve  de  uno  en  uno,  pero  ojo  con  los  cuadritos 
que  aparecen  a  los  lados  de  la  plataforma,  que  no  están  para 
decoración,  sino  que  son  dos  peligrosas  bombas  que  te  destrui¬ 
rán. 

Sólo  queda  por  decir  que  este  juego  no  precisa  ni  ampliación 
de  memoria  ni  joystick. 


0  F0RSA*1 TQ2000  ;  NEXTSA  :  REM  MIQUEL  GR 
AS  CARRERAS  1984 

1  GOSUB  1800 

2  A«8 1 30 : T I #» " 000000 " 

3  F-8106 

4  B=0  SC-0  08120  GB-8140 
3  P0KE36879j  8 

6  IN-7748 
10  FGRT=b4  TO505 

20  PR I NT " C  HOM I C  5CRSRR 3  E SPC  3  C RVSON 3 PU 
NTOS  C  RVSOFF 3 " SC  ^  PR I NT " E  HOM  3  E  2 1 CRSRD  3 
E4CRSRR3 TIEMPO : ESPCJ"TI« 

30  PÜKEOj 102 
35  POKEOBi  102 
40  POKEIN+TíBl 
30  ÜOSUB310 
60  POKEIN+T , 32 
65  IFT>350THEN1200 
70  NEXTT 
310  GETA* 

313  I F A*» " E CRSRD  3 " THENA* A-2  B«B-2 

320  IFA*«" C CRSRR 3 "THENA-A+2  =  B-B+2 

321  I F A*« " Z" THENGOSUB5000 

325  IFPEEk(A) "PEEK < O ) THEN7000 

326  IFPEEK(A)"PEEK(OB)THEN7000 
330  PÜKEA*  88 

335  FÚRP-1TÚ150NEXT 

336  PÜKEAj  32 
340  RETURN 

1000  PRINT"[CLR3“ 

1010  PR I NT " E  HOM  3  E  25CRSRD  3  E  2 1 COMMP  3 " 

1020  F0RW-1T02 
1030  PR I  NT " [ 2 1 CRSRU  3 " 

1040  NEXTW 
1030  RETURN 
1200  FORC-10TO25 

1205  F0RLL*1 TO500 : NEXT 

1 206  PR 1 NT " C  CLR  3  C 1 1 CRSRD  3  C  5CRSRR  3  C  RVSON  3 
I NVADER "  PR I NT " E 6CRSRD 3 1 5CRSRR 3 PUNTO 


1210  P0KE36879.C 
1220  NEXTC 

1300  I FSC> 1 0000THEN6G00 
1400  IFSC<10000THEN6500 
2000  END 

5000  F*8108 • F0RKK»1 T013 
5005  POKEA/ 81 
5010  POKEF+B-30 
5020  F0RVV-1T02  NEXT 
5030  POKEF+B-32 
5040  F-F-22 

5045  IFPEEK  i  F+B  >  -PEEX  (  A  )  THENSC-S023 


5050  NEXTKK 
5060  RETURN 
6000  PRINT"[CLR3" 

6010  P0KE36879) 90 

6020  PR I NT " £  3CRSRD 3  £  BLK  3  ERES  £  SPC  3 UN £  SPC3 
GRAN C SPC 3 T I R ADOR £ SPC 3 " 


6025  PR I NT " £  2CRSRD  3  E  2CRSRR 3  E  BLK  3  HAS  E  SPC 3 
UERRI BADO  £  SPC  3 " SC/230 " E  5SPC 3 1 NVASORE 

S“ 

6026  PR I NT " £  4CRSRD  3  EN  E  SPC  3  UN  E  SPC  3  T I E 
MP0ESPC3DE  "TI* 

6030  PR I NT " E  2CRSRD  3  E  BLU  3  QU I ERES  £  SPC  3 
HACER  £  SPC  3  OTRA  E  SPC  3  PART I  DA  " 

6040  INPUTM* 

6050  IFMS*"SI "THEN1 
6060  I FM*» " NO ” THENEND 
6400  END 

6500  PRINT"ECLR3 " 

6510  P0KE36879, 158 

6520  PR I NT ” E  CLR  3  C 9CRSRD 3  ERES  £  SPC  3  BHS 
TANTEE  SPC  3 MALO  -  £  SPC  3  S I GUE  C  SPC  3 PRACTI 
CANDO" 

6525  PR I NT  u  £  2CRSRD  3  SOLO  £  SPC  3  HAS  C  SPC  3 
DERRIBADO " SC/230 " £  SPC  3 1 N VASORES " 

6526  PR  I  NT  "  £  3'CRSRD  3  EN  E  SPC  3  UN  £  SPC  3  T I E 
MP0ESPC3DE  "TI* 

6530  FORWQ- 1 TO6000 • NEXT 
6540  RUN 

7000  PR I NT " £  HOM  3  £  9CRSRD 3  £  C  RSRR  3HAS  E  SPC  3 
TOCADO  £  SPC  3  LA  £  SPC  3  BOMBA " 

7010  FORZX-22T031 

7015  FORKL-1TO200:NEXT 

7020  P0KE36879) ZX 

7030  NEXTZX ■ I FSC> 1 0000THENRUN ¡ END 


VIC-20 

Programa 
quinielas 

El  programa  qui¬ 
nielas  juega  al  azar 
dándonos  las  catorce 
variables,  y  basta  pul¬ 
sar  una  tecla,  para 
que  nos  dé  otros  ca¬ 
torce  resultados. 

Al  funcionar  con  un  generador  de  números  aleatorios  a  veces 
los  catorce  resultados  son  idénticos. 

La  posibilidad  de  acertar  los  catorce,  con  este  programa,  son 
las  mismas  que  las  de  las  maquinitas  o  cualquier  procedimiento 
que  juegue  al  azar. 

Para  parar  el  programa  pulsar  la  tecla  RUN/STOP. 


Cirilo  Sánchez  Barrado 
C/  Cedro,  4,  Bajo  3 
Cornelia  de  Llobregat 
(Barcelona) 


42/Comtnodore  World  Noviembre  1984 


INFORMATICA  Y  EDUCACION 


«CIA.  ESPECIALIZADA  EN  EQUIPOS.  SOFTWARE  Y  SERVICIOS  PARA  LA 
ENSEÑANZA  TANTO  DE  INFORMATICA  COMO  DE  OTRAS  MATERIAS. 

•DISTRIBUYE  CON  CONTRATO  EN  EXCLUSIVA  PARA  TODA  ESPAÑA: 

• - □  Red  local  ED  NET desarrollada  porBSP,capaz|deconeaarhasta250 

puestos  al  ordenador  central,  siendo  éste  un  C-64.  También  permite 
que  estos  puedan  utilizar  dispositivos  de  disco  duro  o  flexible,  etc.  y 
que  desde  un  punto  master  se  controlen  todos  y  cada  uno  de  los 
puestos-alumno. 

O - □  Control  de  automatismos.  Permite,  desde  el  C-64,  controlar 

32  parámetros  de  entrada  y  otros  tantos  de  salida  de  la  máquina 
o  máquinas  que  se  quieran  automatizar. 

□  Control  de  robots.  Permite  desde  el  C-64  controlar  robots. 

-f—  □  Pantalla  digital.  Maneja  el  ordenador  al  tacto  de  la  pantalla. 

°  □  Paquete  Mágico.  El  profesor  puede  preparar  cualquier  asignatura 

para  ser  enseñada  y  controlada  a  través  del  ordenador. 


INFORMATICA  Y  EDUCACION 

Teléfono  (91 )  401 29  50  Teléfono  (93)  247  40  03 

C¡  Gral.  Pardiñas,  74  Cl Joaquín  Folguera,  2 ,  bajo 

28006  Maáid  Barcelona 


*t^tí0Í»\ 

<^tS^  -K 


s® 


J| 


«&&$ 

•í*  °  v«  '&&>•? 

t^-  %í%> 

-»1  ^  s."”’ 

S^>?V»4  .  .  „.CO%£V 


MICROELfCTRONICA 
Y CONTROL 

Valencia.  49-51,  bajos. 
08015  Barcelona 


valencia,  4»-di,  Dajos.  \\ 

08015  Barcelona  Y\ 

C0MM0D0RE  WORLD 

Barquillo,  21,  3.°  I.da  28004  Madrid  \\ 
Teléf  (91)  231  23  85/86/88/95  \\ 


1"> . " 

xf*« 

■sSO 


1 


PROGRAMA  QUINIELAS 
10  PCIKE36679, 8 

20  PR I NT " [ CLR ] C  WHT ] [ 4SPC 1 C RVSON ] [ SPC ] 
QUIÑI ELRS C  SPC I C 2CRSRD I " 

30  N  B»0  C=0 
40  FGRX-1T014 
50  Q"INT(5#RND< 1 )) 

60  IFG-4THEN130 
70  IFQ-1 THEN1 10 
80  R-H+l 


90  PRINmaSPCDl" 

100  GOTO 150 
110  B-B+l 

120  PRINT"[6SPC3X" 

125  GOTO 150 
130  C-Ol 

140  PRINT"C7SPC]2M 
150  NEXT 

160  GETRf  IFR$-" "THEN160 
170  GOTO20 


WÁ  Gráficos  3-D 


En  vuestro  número 

David  Caballero  Valero  3  (abril  del  84)  publi- 

Te?f"  275  65 452  casteis  un  programa 

Madrid-6  suPcr  interesante,  los 

I - - - gráficos  en  tres  dimen¬ 

siones  para  el  VIC- 
20.  de  Juan  Santamaría  y  Javier  Anglada. 

Tanto  despertó  mi  interés  que  raudo  fui  a  probarlo  al  VIC  de 
un  amigo.  Quedé  sorprendido  y  desilusionado  al  comprobar 
que  no  funcionaba  en  el  CBM/64. 

Asi  que  ni  corto  ni  perezoso  me  puse  a  estudiar  el  programa  y 
ver  si  existía  alguna  posibilidad  de  adaptarlo. 

Llegué  a  la  conclusión,  tras  muchos  rodeos,  de  que  habia  que 
fabricar  una  rutina  “DRAW"  que  trazara  lineas  entre  puntos. 
Asi  que  lo  hice  y  depuré,  y  lo  adapté  al  programa  de  Juan  y 
Javi. 

El  resultado  es  este.  He  aprovechado  la  función  de  partida. 
Los  parámetros  son  los  mismos  que  para  Grafuics.  He  introdu¬ 
cido  además  la  opción  de  borrado  de  alta  resolución  (“Desacti¬ 
var  s/n"),  que  lo  hace  menos  pesado  en  ciertos  casos. 

Si  os  quedáis  “atascados”  en  el  modo  BIT  MAP,  hacer  RUN 
700  (y  si  lo  veis  muy  crudo  SYS  8000)  y  volveréis  al  modo 
normal. 

El  programa  es  lento.  Una  vez  activado  el  BIT  MAP  tarda 
como  un  minuto  en  empezar  a  trazar  los  puntos.  Y  luego  tarda 
bastante  en  terminar  la  gráfica. 


110  INPU  í " VISPCJMRXCSPCJMIN. ";Y1, V0 
I NPUT " G I R0 " , RL  I NPU T " FRC TUR " ,  Z0 
120  INPUT" INTERVALO"  .10  D I fIM <  1 , 200) 
130  INPUT"DESHCTIVHR",KOP$  GOSUB370 
140  F ÜR J-0T 0 1 02STEP3  •  Y2-Y0-KV1-V0)*J 
7102  0-1  F0RI-1  TOlb0 
1 50  X2-X0+ <  X 1 -X0 ) * 1 7 1 60  UOSUB340  S- < 
Z*Z0+ J) 

160  IFS>200THENS-200 

170  IFSC0THENS-0 

180  IFD7I0THENG-1  GOTO260 

130  IFG-1THENÜ-0  GOTO240 

200  IFSX-K0,  IyRNDSGKl,  I JRNDR-0THENR 

-1 •GÚTOJ20 

210  I  FS>M  (0,0  RNDS<M  <1,0  THENGOTO270 


REGIS  I  ER  LATELY 
CONTINENTAL,  S.A. 
Balmes-297,  pral.  2V  A 
BARÍ  ELONA-6 
Teléf.  (93)  200  18  99 
Información:  Sr.  EERRER 


KEd  »  PRÜGRRMR  GRRFICOS  3-D 


REM  »  (RDRPTRDO  RL  CBM764J 


REM  *  POR  DRV ID  CRBRLLERO 


'  EL  ORDENRDOR  CBM764 


REM  *  UKR  CIRO  80FT  1984 


NUESTRA  EMPRESA 
AL  SERVICIO  DE  TODOS 

DEPARTAMENTO  COMERCIAL: 

—  Microprocesadores  y  ordenadores  de  gestión  (gama 
Commodore)  para  el  particular  V  Empresa. 

—  Programas  educativos,  de  juegos  y  de  diferentes  aplica¬ 
ciones.  (Gestión,  contabilidad). 

DEPARTAMENTO  DE  ESTUDIOS: 

—  Cursos  Programación  Basic  >  Cobo!. 

—  Cursillos  de  grabación. 

—  Prácticas  con  ordenadores  y  micro  en  la  propia 
Empresa. 


Commodore  W  orld  Noviembre  1984/45 


Utilizar  un  COMMODORE  64  únicamente 
para  jugar,  es  como  pedirle  a  Albert  Einstein  que 
nos  resuelva  ia  raíz  cuadrada  de  cuatro. 

El  cerebro  del  ordenador  apenas  funciona. 

Para  aprovecharlo  al  máximo,  lo  que  Vd. 
necesita  son  programas  interesantes  (archivo  de 
documentos,  educación  interactiva,  estimulantes 
juegos  o  proceso  de  textos )  y  lógicamente  los 


periféricos  adecuados: 

—  La  unidad  de  disco  Commodore,  un 
almacenaje  de  datos  muy  rápido,  fiable  y  de 
gran  capacidad. 

—  La  unidad  de  cassette  Commodore,  una 
forma  económica  de  introducir  y  almacenar 
programas. 

—  El  monitor  en  color  Commodore,  para 


MICROELECTRONICA  Y  CONTROL  d  Valencia,  49-53. 08015  Barcelona,  d  Princesa,  47, 3.°  G.  28008  Madrid. 
UNICO  REPRESENTANTE  DE  COMMODORE  EN  ESPAÑA 


COMMODORE  COMPUTER  Adviene  que  al 
comprar  uno  de  sus  producios  exija  la  garantía  ( 
MICROELECTRONICA  Y  CONTROL.  S.A., 
única  válida  para  lodo  el  territorio  nacional. 


COMMODORE  MCS801 
Impresora  cuatro  colores 


COMMODORE  DPS 1101 
Impresora  de  margarita 


COMMODORE  1520 
Printer  plotter  cuatro 
colores 

COMMODORE  1541 
Unidad  de  disco  170  K 


COMMODORE  1530 
Unidad  de  cassette 


COMMODORE  1701 
Monitor  con  color  y  sonido 

J0YSTICKS 

PADDLES 

SOFTWARE  V  LIBROS 


10%  de  su  cerebro? 


lograr  que  los  textos  y  gráficos  sean  más 
claros  y  vivos  que  en  un  televisor. 

—  3  impresoras  y  un  printer-plotter,  para 
copias  en  papel,  en  blanco  y  negro  o  color. 

—  Los  joystick  y  paddles,  para  conseguir  que 
los  juegos  sean  más  excitantes. 

Sea  exigente.  Si  su  cerebro,  el  de  su 
COMMODORE  64,  puede  darle  100,  no  se 
conforme  con  10. 


fs  commodore 

COMPUTER 

la  emoción  del  futuro 


220  IFR*1THEN280 

500  IFDÚ»0THENH*H1  Q-Ül  GOSUB640  NEX 

230  Ül**(I-l)+30  :  02*1+30  Hl*219-(SI+5 

T  RETURN 

0)  : H2*2 1 9- <  S+50 )  '■  GOSUB680 

510  ECl=*DQ/HBb(DQ;  PRR-Flb3(DH/DQ> 

240  IFS>MC 1 » I 1THENMC 1 < I )=S 

320  IFDH*0THENH«H1  FUROQ1TOQ2STEPEÜ 

230  IFSCFH  0> 1 )TH£NM<  0< I  >*S 

:  GÚSUB640  •  NEXT  •  KETIJRN 

260  SI-S 

330  EH-DHXHBS<DH>  H=H1 

270  HEXT  NEXT  GOTO690 

340  FGRÜ-G1T0Ú2STEPEÜ  H-H+CPHRiEH)  G 

280  IFS>*t1(  1 ,  I  >THENSI«M<1»I-1> 

OSUB640  NEXT ¡ RETURN 

290  IhS-<ri(0,lJTHENSI"M<0.I-l) 

330  IFDH-0THENQ-Q1  H*H1 ■ GÚSUB640  RET 

3ki0  k*0  GOTO230 

URN 

310  IFSIOrUG-  I-l)THENS-ri<0,I>  G0TÜ2 

560  EH*DHXABS(DPO  PHR*RBS< DQXDFD 

30 

370  IFDÜ*0THENÚ*rjl  FÜRH-H1 T0H2STEPEH 

320  IFÍl>-MCl,I-nTHENS-liaiI> 

: GU&UB640 : NEXT  RETURN 

330  G0TÜ23U 

380  EG-DO/HBSCDU)  OÚ1 

340  X-X2*SIN<HL^V2*C0S(  HL)  :  V-V2*SIN 

590  FÜRH-H1T0H2STEPEH  0«Q+(PHR*EQ)  0 

CHL>-X2*C0S(HL;  D*6QR(X*X+V*V; 

ÜÍUBb40  NEXT : RETURN 

350  Z*EXP<  -D*D)*SIN(2*ir*D> 

600  REN*  CBS0  2 - 

360  RETURN 

610  IFDQ-0THENH-H1  Q-üíl  ÚO6UBb40  RET 

URN 

3B0  PÜKE33280/  5  WF«=»8192  P0KE33272,  P 

620  EQ-DQXHBSfDQ)  EH*DH/FIBS<DH)  H-Hl 

EEK(33272J0R8 : P0KE53265 <  PEEK ( 33265 ) 0 

R32 

630  F0RU-Ü 1 T0U2STEPEQ ¡ H-H+EH : 00bUBb4 

390  I F  K0PS* " N " THENGÜ  TU4 1 0 

0  NEXT  RETURN 

400  FORLIK-WHQTuWHÜ+7993  ■  F'OKELIK<0N 

640  REM6SUBRUTINA  DE  TRAZO - 

4Í0LFORGUS»1024TO2023 ■ PUKEGUS*  3  NEXT 

GUS 

630  H0K- 1 NT  <  Q28 ) • SHE- 1  NT ( H/tí ) : KHP-HH 

420  RETURN 

ND7 :  NUN-WFlG+SHE*320+Hi;iK*8+KHP 

430  REI16SUBRUTINR  DE  COMPFlRfiCION - 

660  L0K*7-(QHND7) : P0KENUN<  PEEK(NUN70 

R< 2 TECHO  RETURN 

670  REM6SUBRUTINFI  DE  LINEA  ■ 

440  DH-H2-H1  DW=«2-Q1 

450  IFHfcS<DO»HBS(DFOrHEN490 

460  IFHBSCDFO>HBS(DQ)  THEN330 

680  QÜSUB430  RETURN 

470  1 FHBS <  DH  ;  -AB8  (  DQ  ) THEN600 

690  PRINT^C-LRI"  WHIT<198)-  1 

480  RETURN 

700  P0KE53265. PEEK (53263 7AND223  POKE 

490  REM*  CHbCJ  1 - 

53272<  21 ; END 

870  IFS>M(0<  I  )8NDS<M«.  1  .  I  >HNDR“0THENR 

-1  OOTO310 

Control 
programable 
de  la  pantalla 


VIC-20 


Los  que  posean  car¬ 
tuchos  de  Comrao- 
dore,  habrán  compro¬ 
bado  que  con  el  cursor 
se  puede  centrar  la 
pantalla.  Y  los  po¬ 
seedores  de  algunas  cintas  en  código  máquina,  que  la  pantalla 
se  puede  desplazar  en  vertical  y  horizontal. 

Por  ejemplo,  el  que  posea  el  programa  centipede  habrá  visto 
que  la  pantalla  desaparece  por  completo  y  aparece  por  la  parte 
interior  del  televisor  hasta  colocarse  en  su  sitio. 

Como  esto  solo  lo  podia  encontrar  en  programas  en  código 
máquina,  empecé  a  experimentar  con  los  Pokes  hasta  que  di 
con  el  Poke  36897  y  pude  comprobar  que  podia  controlar  la 
posición  de  la  pantalla  en  vertical.  Al  teclear  Poke  36897,1,  la 
pantalla  apareció  en  la  parte  superior  del  televisor,  al  ir  ascen¬ 
diendo  el  número  la  posición  de  la  pantalla  iba  bajando.  Al 
teclear  Poke  36897,200,  la  pantalla  desapareció  totalmente. 


Ya  que  con  este  Poke  sólo  podía  controlar  la  vertical,  des¬ 
cendí  al  Poke  36896  y  pude  controlar  la  posición  de  la  pantalla 
en  horizontal.  Al  teclear  Poke  36896,1,  la  pantalla  se  posicionó 
a  la  izquierda.  Ascendiendo  el  número,  la  pantalla  se  despla¬ 
zaba  a  la  derecha.  Al  llegar  al  Poke  36896,24,  la  pantalla  en 
posición  derecha  se  llenó  de  símbolos  y  letras;  al  ascender  más 
el  número,  la  única  forma  de  recuperar  la  pantalla  en  su  sitio  y 
limpiarla,  fue  apagar  el  Vic. 

Al  bajar  el  Poke  36895,  comprobé  que  hacía  lo  mismo  que  el 
Poke  336879,  controlar  el  color  de  la  pantalla  y  el  del  marco. 

El  programa  es  una  demostración  de  cómo  controlar  estos 
Pokes.  Al  principio  controla  la  pantalla  en  vertical  subiéndola  y 
bajándola  hasta  desaparecer,  la  segunda  parte  del  programa 
nos  controla  la  posición  de  la  pantalla  con  los  cursores  (CRSR- 
D)  y  (CRSR-R). 

10-  20  Cambia  el  color  del  fondo  de  la  pantalla,  a  negro  y  la 
pantalla  desaparece. 

60-  70  Sube  la  pantalla  a  su  posición  normal. 


Cirilo  Sánchez  Barrado 
C/  Cedro.  4.  Bajo  3 
Cornelia  de  Llobregat 
(Barcelona) 


48/Commodore  World  Noviembre  1984 


80  Detecta  la  pulsación  de  una  tecla. 

90-100  Baja  la  pantalla  hasta  que  desaparece. 

110-130  Cambia  el  contenido  de  la  pantalla. 

140-150  Vuelve  a  subirnos  la  pantalla  a  su  posición. 

160  Para  el  programa  durante  unos  diez  minutos. 

170-180  Desplaza  la  pantalla  a  la  parte  superior  izquierda  del 
televisor,  para  poderla  central  con  los  cursores. 


10  PÜKE36893, 24  V-3689 7  fl*2U0 : PRINT" 

[ CLR  3 [ CRSRD  3  C  RVSON  3 [ SPC  3 CONTROL  C  2SPC 3 
PRQGPAMABLECSPC3" 

20  POKEV,A  PRINT "[ 4SPC 1 C RVSON 3 DE C SPC 3 
LEI  C  SPC  3PANTHLLH "  PR I NT " C  2CRSRD3  [  2SPC  3 
MOV I Í1 1 ENT0 1  SPC  3 VERT I CHL C  CRSRD  3 [ 3SPC 3 
DE  í SPC  3  LR  í SPC  3  PANTALLA" 

30  PR 1  NT " C 2CRSRD  3  C  Bl  U  3 [ 2SPC  3  DEL [ SPC  3 
[ RED  3  P0KE36897 , 38 "  PR I NT " C  CRSRD  3  C  BLU  3 
C2SPC3AL1SPC3CRED3P0KE36897/ 200CBLU3 

40  PR  I N  T " [ 3CRSRD  3  C  3SPC  3 [  RVSON  3  PULSA  C  SPC  3 
UNA! SPC 3TECLAC RVSOFF 3 " 

60  POKE V , H  A-A-0 . 5 • I FFK38THEN80 
70  GOTO60 

80  OETti*:  IFhí-'"'THEN80 

90  PÜKEV . A • A*A+0 . 5 : I FA>200THEN 1 1 0 

100  GOTO90 

110  PRINT " [ CLR  3 [ 4CRSRD  3 [ 3SPC  3 MOV I M I E 


180  Da  el  control  horizontal,  desde  la  posición  1  a  la  posi¬ 
ción  20  con  el  cursor  (CRSRR),  para  desplazar  la  pan¬ 
talla  a  la  derecha.  Al  llegar  a  la  posición  20  nos  vuelve, 
la  pantalla  a  la  posición  1. 

190  Da  el  control  vertical  de  la  posición  10  a  la  60,  para  el 
cursor  (CRSRD),  y  poder  bajar  la  pantalla.  Al  llegar  a 
la  posición  60  nos  la  vuelve  a  poner  en  la  posición  10. 


NT0 1  SPC  3  DE  C  SPC  3 L« "  PR I  NT “ C  CRSRD  3 [ 6SPC  3 
P  AN  T  ALL  A  [  SPC: )  EN  " 

120  PR I NT " [ CRSRD  3 1 SPC 3 VERT I CRL C  SPC  3  P 
0KE  C  SPC  3  36897"  PR I NT " t  CRSRD  3 1  SPC  3 HÜR 
I Z0NT AL  í SPC  3P0KE36896 " 

130  PR 1 NT " C 2CRSRD 3 [ PUR  3  í 2SPC3CEN3 RE  C  SPC  3 
LRC SPC 3PRNTRLLR "  PRINT" C CRSRD 3 C 4SPC 3 
CON  C  SPC  3  EL  C  SPC  3  CURSOR  C  BLU  3 " 

140  PÜKEV , R  R-R-0 , 5 : I FRC38THEN 1 60 
150  GOTO 140 

160  F ÜRZ« 1 T 0 1 0000 • NEXT  PRINT" C2CRSRD3 
PRRR C  SPC  3  PRRRR C  SPC:  3  EL  t  SPC  3 PROGRAMA [ CRSRD  3 
[ 4SPC  3  C  RVSON  3  PULSA  C  SPC  3  E  SPRC 1 0  “ 

170  H-36896  B«1  R-10 

180  PÜKEHí  B  GETBf  1 FBí  ■ " £ CRSRR 1 " THEN 

B-Bt-0.5  :  IFB>20THENB«1 

190  POKEV-fi  IFBM"[CR6RD3"THENA«A-*-0. 

5' IFR>60THENfl»10 
200  DOTO 180 


■  computer/mail 

SOFTWARE 

-GESTION 

^80  COLUMNAS  PARA  CBM  64  CON  COLOR-SIMBOLOS  GRAFICOS  V  SONIDO  (Sólo  ocupa  3  K) 
DISCO  O  CASSETTE.  PRECIO:  7.000  PTS. 


NOVEDADES 


OCIO/COMMODORE  64 


MOBY-DICK  (Naval)  3  niveles 

ATAQUE  A  LA  CIUDAD  (Espacial)  24  niveles 

INTERCEPTOR  (Espacial)  6  niveles 

EN  BUSCA  DE  LOS  DIAMANTES  (Laberinto)  9  niveles 

EL  ESTANQUE  (Habilidad) 


1.800  Ptas. 
2.500  Ptas. 
2.500  Ptas. 
2.000  Ptas. 
1 .800  Ptas. 


r  LNvit  A  compjrci  /molí  .AiMtM4  5-MOLU  Barcelona  ^ 

nombre 

JUEGO 

PRECIO 

total 

APELLIDOS 

DIRECCION 

Pur  cada  cuatro  juegos, 
regalamos  uno. 


IBLACK 


Suscríbase  a 


y  le  llevaremos  a  su  casa 
un  APPLE  II  c 


Suscríbase  a  MicroSistemas  antes  del  30  de  noviembre  próximo 
y  participará  en  el  sorteo  de  un  magnífico  ordenador  personal 
APPLE  II  c. 

Para  los  que  ya  estén  suscritos  también  tendrán  opción  de 
conseguir  el  APPLE  II  c.  Si  desea  conocer  su  número  en  el 
sorteo  llámenos 
al  teléfono 
231  23  95. 

Habrá  también 
otros  premios 
para  nuestros 
suscriptores 
que  daremos 
oportunamente 
a  conocer.  El 
sorteo  tendrá 
lugar  en 
nuestro  stand 
del  SIMO. 


r— _ 

T—  I—  i—  i— i—i— i— i— t— i— i  —i  — , 


BOLETIN  DE  SUSCRIPCION  A  MICROSISTEMAS 


Nombre  y  Apellidos  . 

Puesto . . . „ . - . „ . . . . . 

Compañía  . . . . . . . . . — . . . 

Actividad  Empresa  . - . . . - . 

Dirección  . . . - . Teléí: . 

Ciudad . D.  P . Provincia . 

Suscripción  anual  2.950  ptas. 

Deseo  iniciar  la  suscripción  con  el  próximo  número 

□  Adjunto  cheque  por  2.950  ptas. 

□  Reembolso  más  gastos  del  mismo  al  recibir  el  primer  número  de  la  suscripción. 
(Enviar  a  Gravina.  13-1“  Izda.  Madrid-4  -  Teléí:  231  23  88/95) 


’  1 


C  OAAAAodore'world 


Laboratorios  de  informática 
en  la  enseñanxa 


Muchos  son  los  colegios  que  nos  están 
llamando  pidiéndonos  información  sobre 
la  compra  de  ordenadores,  instalación  de 
un  laboratorio,  preparación  del  profeso¬ 
rado,  etc. 

Por  fin  creemos  poder  dar  un  solución  y 
un  lugar  a  donde  los  colegios  pueden  diri¬ 
girse  exponiendo  las  necesidades  del  centro 
y  esperando  un  asesoramiento  lógico  y 
profesional. 

La  firma  Informática  y  Educación  S.A  es 
una  empresa  dedicada  exclusivamente  a 
profundizar  en  el  estudio  de  las  necesidades 
de  la  enseñanza  de  la  Informática  y  campos 
asociados  en  el  área  de  la  educación. 

No  es  necesario  que  los  colegios  se  plan¬ 
teen  un  alto  dispendio  para  comenzar  la 
enseñanza  de  esta  materia. 

Desde  el  VIC  al  64,  pasando  por  el 
nuevo  16,  se  puede  comenzar  con  una 
modesta  instalación  e  ir  aumentándola  y 
sofisticando  según  la  vayan  haciendo  las 
necesidades  del  centro. 

Teniendo  en  cuenta  que  cada  ordenador 
es  utilizado  al  tiempo  por  equipos  de  tres 


alumnos  (4  máximo),  5  ordenadores  es  un 
número  suficiente  para  cubrir  las  necesida¬ 
des  de  un  laboratorio  con  clases  de  15  a  20 
alumnos. 

A  partir  de  aquí,  y  con  este  requeri¬ 
miento  mínimo.  Informática  y  Educación 
ha  desarrollado  todo  tipo  de  ampliación  y 
sofisticación  que  el  centro  requiera. 

Uno  de  sus  principales  objetivos  fue  sal¬ 
var  ese  escollo  de  difícil  solución,  ignorado 
consecuentemente  por  muchos  instaladores 
de  equipos  informáticos,  que  es  el  aisla¬ 
miento  del  alumno  frente  a  la  máquina. 

Asi  nació  la  ED-NET  (red  de  área  local 
para  la  educación)  que  consiste  en  comuni¬ 
car  los  diversos  ordenadores  entre  si,  todos 
los  ordenadores  a  un  único  periférico  — im¬ 
presora,  unidad  de  discos,  etc. —  y  todas  las 
unidades  manejadas  por  los  alumnos  a  la 
unidad  manejada  por  el  profesor.  Cada 
ordenador  puede  funcionar  independien¬ 
temente,  en  grupos  o  en  clase  general  diri¬ 
gida  por  el  profesor  a  través  de  su  unidad. 

Esto  lo  comprobamos  en  la  práctica  visi¬ 
tando  el  laboratorio  instalado  con-  este  sis¬ 


tema  en  las  escuelas  Padre  Piquer  donde 
imparten  las  enseñanzas  de  E.G.B.,  F.P.  1° 
y  2a  grado  y  B.U.P. 

Aquí  pudimos  ver  la  eficacia  y  profesio- 
nalidad  de  esta  instalación  en  un  laborato¬ 
rio  montado  con  14  puestos  de  trabajo  en 
los  que  se  encontraban  trabajando  40 
alumnos. 

Durante  esta  breve  visita  pudimos  com¬ 
probar  los  siguientes  puntos: 

El  profesor  puede  comprobar,  en  cual¬ 
quier  momento,  y  sin  necesidad  de  "estar 
encima"  de  los  chicos,  qué  está  sucediendo 
en  cualquiera  de  las  pantallas.  Esto  signi¬ 
fica  que  desde  su  unidad  el  profesor  puede 
“entrar"  en  el  ordenador  que  desee  a  fin  de 
corregir  errores,  hacer  recomendaciones, 
corregir  un  trabajo,  etc. 

Igualmente  y  de  la  misma  forma,  el  pro¬ 
fesor  puede  “enviar”  su  propia  pantalla  al 
puesto  deseado  como  ayuda  a  ese  puesto,  o 
bien  puede  enviarla  simultáneamente  a 
todos  los  puestos  para  una  explicación 
general. 

Esto  puede  realizarlo  sin  “borrar"  el  tra¬ 
bajo  que  los  alumnos  estén  realizando  ya 
que  éste  queda  depositado  en  la  memoria  y 
el  alumno  puede  volver  a  “llamarlo”  donde 
lo  dejó  una  vez  que  el  profesor  le  dé  vía 
libre. 

Un  punto  importante  es  que  la  unidad  de 
profesor  no  es  un  gran  y  caro  ordenador 
central,  sino  un  aparato  más,  idéntico  al  de 
los  alumnos,  en  otras  palabras,  un  VIC,  un 
16  ó  un  64,  en  este  caso  de  las  escuelas 
Piquer,  un  64. 

El  paquete  de  Soft,  que  entregaron  a 
Padre  Piquer  con  los  ordenadores,  y  que 
hemos  visto  funcionar,  es  muy  completo, 
incluyendo  los  lenguajes  Logo,  Pilot, 
Forth,  Assembler,  Simón 's,  Power,  Gra¬ 
phics,  Superbasic,  Base  de  Datos,  proceso 
de  Textos  y  por  supuesto  una  colección 
bastante  completa  de  programas  educati¬ 
vos,  académicos  y  juegos. 

Este  mismo  paquete,  que  hemos  visto  en 
castellano,  lo  tienen  preparado  también  en 
euzkera  y  en  catalán. 

Según  nos  cuenta  Ramón  Leonato, 
directivo  de  Informática  y  Educación,  tie¬ 
nen  ya  preparada  otra  serie  de  productos  ► 


Colegio  Lorenzo.  El  ordenador  sobre  la  mesa  redonda  es  la  unidad  central  del  profesor. 


RED  ED-NET 
PARA  N  PUESTOS 

1.  Impresora 

2.  Discos 

i.  Comin odore  64 

4.  Monitor 

5.  Dispositivo  red 

A.  Puesto  master 

B.  Puesto  normal 


Commodore  World  Noviembre  1984/51 


Laboratorios  de  las  escuelas  Padre  Piquer. 


pensados  y  diseñados  especialmente  para  la 
educación,  tales  como  un  equipo  para  con¬ 
trol  automático  de  secuencias  para  iniciar  a 
los  estudiantes  en  la  robótica;  una  pantalla 
digital  que  podrá  ser  utilizada  para  iniciar 


Albareda: 
órgano 
de  verdad 

En  Sonimag  84  tuvimos  la  oportunidad 
de  ver  también  los  últimos  accesorios  lan¬ 
zados  al  mercado  para  el  C-64,  especial¬ 
mente  destinados  a  explotar  todas  sus 
posibilidades  musicales. 


Muchos  nos  habíais  escrito  pidiéndo¬ 
nos  señas  de  casas  que  comercializaran 
teclados  tipo  órgano,  adaptables  al  C-64, 
pero  no  pudimos  contestaros  ninguna  en 
concreto,  pues  bien,  ahora  en  España  la 
casa  Albareda  de  Lérida  ha  puesto  a  la 
venta  un  teclado  con  un  cartucho  que 
contiene  el  interface  y  el  programa  para 
utilizarlo  como  mono  o  polifónico. 

Para  utilizarlo  se  necesita  un  C-64,  un 
monitor  o  televisor,  y  una  unidad  de  disco 
o  cassettes,  ya  que  el  programa  está  dis¬ 
ponible  tanto  en  cinta  como  en  disco. 

El  teclado  es  del  tipo  profesional  con 
cuatro  octavas  completas  de  Do  a  Do,  no 
es  una  de  esas  “cosas"  que  acaban  de  lan¬ 
zar  en  Estados  Unidos  para  superponer¬ 
las  al  teclado  normal  del  C-64,  es  un 
teclado  totalmente  independiente  y  sólo 
está  unido  al  ordenador  por  un  cable 
plano  de  buena  calidad. 

Toda  la  circuitería  electrónica  del 
interface  se  encuentra  distribuida  entre  el 
cartucho  que  se  conecta  al  port  de  expan¬ 
sión  y  al  propio  teclado,  eliminando  de 
este  modo  los  problemas  que  pudieran 
originar  las  “cajas  colgantes"  en  cual- 

52/Commodore  World  Noviembre  1984 


en  el  “mágico"  mundo  del  ordenador  a  los 
chiquilines  ya  que  el  ordenador  responde  a 
las  órdenes  por  simple  tacto  del  dedo;  un 
paquete  con  el  sugestivo  nombre  de 
“Mágico”,  paquete  especialmente  diseñado 
para  la  enseñanza  asistida  por  ordenador, 
de  cualquier  materia  académica,  con  el  que 
el  profesor,  según  nos  dicen,  podrá,  desde 
llevar  toda  una  clase  según  sus  propios 
métodos  y  criterios,  hasta  la  gestión  com¬ 
pleta  del  centro... 

Repetimos  que  aunque  presumimos  que 
estos  productos  serán  tan  interesantes 
como  suenan,  no  hemos  tenido  todavía  la 
oportunidad  de  comprobarlos. 

Según  nos  dicen,  estarán  disponibles 
entre  los  próximos  15  días  y  un  mes,  lo  que 
esperamos  poder  comentaros  sobre  el  tema 
en  el  próximo  número. 

Queremos  dar  las  gracias  desde  aquí  a 
José  María  Picazo,  jefe  de  Estudios  de  las 


Escuelas  Padre  Piquer  por  toda  la  colabo¬ 
ración  que  nos  prestó  así  como  a  José  Luis 
Vicente,  profesor  de  informática,  que 
aguantó  con  una  gran  amabilidad  y  una 
sonrisa  la  irrupción  que  hicimos  en  pleno 
periodo  de  clase,  sin  olvidar  a  los  alumnos 
de  primer  curso  de  2C  grado  que  soporta¬ 
ron  de  lo  más  educadamente  las  “entra¬ 
das”,  interrupciones  y  “espionajes”  a  los 
que  les  sometimos. 

Las  personas  que  llevan  la  relación 
directa  con  los  colegios  son:  Ramón  Leo¬ 
na  to  en  Madrid  y  Juan  Forment  en 
Barcelona. 

Barcelona. 

Joaquín  Folguera,  2 
Teléfono  247  40  03 
[/^Madrid 

General  Pardiñas,  74  - 
Teléfono  401  28  48 


quier  sitio.  Por  tanto  se  ha  cuidado  el  di¬ 
seño  para  evitar  averias,  y  el  cartucho  es  de 
los  pequeños,  similar  a  los  de  juegos,  por 
lo  que  no  estorba  detrás  del  ordenador. 

Con  el  teclado  suministran  un  par  de 
programas,  bien  en  cinta  o  en  disco,  que 
permiten  utilizar  el  C-64  con  el  teclado 
como  sintetizador  monofónico  o  como 
órgano  polifónico.  Como  sintetizador 
monofónico  podemos  escoger  entre  13 
instrumentos:  trompeta,  brass,  clarinete, 
campanas,  flauta,  guitarra,  wha-brass, 
instrumentos  de  cuerda,  piano,  dos  tipos 
de  órganos  eléctricos,  acordeón,  o  sinteti¬ 
zador.  Cada  uno  de  estos  instrumentos  se 
puede  ajustar  para  distintos  matices  por 
medio  de  una  de  las  opciones  del  pro¬ 
grama,  por  ejemplo  podemos  hacer  que  la 
trompeta  suene  con  sordina  o  sin  ella, 
dentro  de  los  de  cuerda  obtener  toda  una 
variedad  de  instrumentos,  etc. 


Si  lo  utilizamos  como  teclado  de 
órgano  polifónico,  podemos  obtener 
otros  5  instrumentos:  spinetc,  acordeón, 
campanas  tubulares,  flauta  o  banjo.  Y 
también  por  medio  de  las  teclas  de  fun¬ 
ción  variar  los  parámetros  de  cada  ins¬ 
trumento  (ataque,  declive,  sostenimiento, 
relajación,  volumen,  octavas  trabajadas, 
forma  de  onda,  y  ciclo  de  operación). 

Creo  que  el  lanzamiento  de  este  nuevo 
producto  hará  las  delicias  de  muchos  afi¬ 
cionados  y  compositores  que  lo  estaban 
esperando,  su  precio  de  lanzamiento  era 
unas  37.000  pesetas.  Si  deseáis  más 
información  podéis  dirigiros  a: 

Albareda,  instrumentos  musicales  y 
accesorios 
Carmen,  19 
Tárrega  (Lérida) 


NOVEDADES  SONIMAG 
Idealogic*  Software  preescolar 
y  primer  cicle  de  EGB 


Idealogic  de  Barcelona  ha  lanzado  de 
Software  didáctico  dirigido  a  los  chicos 
de  corta  edad.  Han  preparado  una  selec¬ 
ción  de  los  productos  de  las  mejores  mar¬ 
cas  americanas  y  lo  han  adaptado  al 
español  para  los  ordenadores  más  popu¬ 
lares  de  nuestro  mercado  (Apple  lie, 
Commodore  64  y  Spectrum).  El  equipo 
de  Idealogic  lo  forman  educadores,  psicó¬ 
logos,  programadores,  etc.,  todos  son 
grandes  profesionales  en  sus  campos  y  el 
resultado  de  su  unión  ha  sido  la  buena 
selección  de  programas  educativos  que 
han  preparado. 

Los  títulos  que  tuve  oportunidad  de  ver 
en  Sonimag  y  seguir  probando  en  la  ofi¬ 
cina,  son: 

— Compulandia,  programa  destinado  a 
niños  de  edades  entre  3  v  10  años,  es  una 
colección  de  juegos  que  incluyen  recono¬ 
cimiento  de  letras,  crear  dibujos,  comple¬ 
tar  series  numéricas  y  de  figuras,  dar  ani¬ 
mación  y  sonido  a  las  palabras  y 
nombres,  etc...  Entre  sus  beneficios  edu¬ 
cativos  podemos  citar:  mejorar  la  capaci¬ 


dad  de  lectura  del  niño  y  el  nivel  de  escri¬ 
tura,  ayudar  al  niño  a  aprender  a  contar, 
desarrollar  la  creatividad  del  chico  y  fami¬ 
liarizarle  con  el  teclado  y  el  ordenador. 

—Mil  Caras,  para  edades  de  3  a  10 
años,  son  tres  juegos  en  uno.  uno  de  ellos 
consiste  en  ponerle  los  rasgos  a  una  cara 
que  originalmente  está  en  blanco.  En  el 
segundo,  por  medio  de  la  cara  creada,  el 
niño  puede  darle  órdenes  de  reír,  llorar, 
guiñar  un  ojo,  etc.,  estimulando  la  expre¬ 
sividad  del  chico.  El  tercer  juego  es  de 
memoria,  la  cara  va  realizando  una  serie 
de  gestos,  y  el  chico  tiene  que  repetirlos 
desde  el  teclado.  Entre  sus  beneficios  está 
el  ayudar  al  niño  a  entender  y  utilizar 
conceptos  fundamentales  de  la  informᬠ
tica  como  menús,  gráficos,  cursor,  tecla 
return,  etc.  Estimula  la  creatividad,  con¬ 
centración  y  memoria,  además  de  intro¬ 
ducir  al  chico  en  los  conceptos  de  codifi¬ 
cación  y  abstracción. 

— Teclas  Divertidas  es  para  chicos  de  3 
a  1 1  años,  son  otros  tres  juegos,  uno  es  de 
reconocimiento  de  letras  que  van  cayendo 


desde  la  parte  alta  de  la  pantalla.  Otro 
consiste  en  teclear  la  palabra  que  identi¬ 
fica  al  objeto  que  cae,  y  el  tercero  en  rela¬ 
cionar  mediante  números  las  diversas 
palabras  y  figuras  que  aparecen  en  la  pan¬ 
talla.  Sus  principales  beneficios  son  el 
familiarizar  al  chico  con  el  teclado  y  el 
reconocimiento  de  letras  y  números. 

— ALF  en  las  Grutas  de  Color  es  para 
los  más  pequeños  de  la  casa  (de  3  a  8 
años),  el  protagonista  es  un  simpático 
bichejo  que  baila  al  son  de  la  música,  es 
muy  fácil  de  jugar,  son  unos  túneles  de 
colores  y  formas  diferentes  que  llevan 
asociados  distintos  sonidos,  y  estimulan 
al  chico  en  gran  manera.  Sus  beneficios 
son  desarrollar  la  planificación  estraté¬ 
gica,  mejorar  la  comprensión  de  la  rela¬ 
ción  causa-efecto  e  introducir  ai  chico  en 
la  utilización  del  ordenador. 

— El  Rancho  es  para  los  mayores  (de  6 
a  12  años),  permite  al  chico  crear  escenas 
en  la  pantalla,  darles  animación  y  música. 
Dispone  de  una  amplia  gama  de  persona¬ 
jes  y  figuras  para  colocar  en  la  pantalla 
moviéndolas  gracias  al  joystick.  y  las 
escenas  pueden  guardarse  en  cassette. 


Este  juego  familiariza  al  chico  con  las 
funciones  elementales  del  ordenador  (me- 
nús,  pantallas,  etc.),  potencia  el  desarro¬ 
llo  de  diseños  y  composición  de  gráficos, 
la  creatividad  y  la  capacidad  de  planifica¬ 
ción  del  trabajo  a  realizar. 

Todos  los  programas  vienen  acompa¬ 
ñados  de  un  manual,  poco  usual  en  las 
otras  casas,  en  el  que  da  una  serie  de  con¬ 
sejos  a  los  padres,  unas  ideas  para  los 
niños,  expone  la  finalidad  educativa  del 
juego  y  sus  beneficios.  Las  instrucciones 
que  acompañan  al  manual  vienen  claras  y 


concisas,  y  da  gusto  ver  una  alternativa  a  la 
gran  “invasión  de  invasores"  que  están 
sufriendo  los  pequeños  de  la  casa  y  que 
sólo  estimula  la  agresividad.  Creo  que  son 
unos  juegos  interesantes  y  bien  desarro¬ 
llados  tanto  en  el  aspecto  del  propio  pro¬ 
grama  como  en  su  valor  educativo. 

Los  programas  vienen  en  cintas,  y  sus 
precios  se  han  unificado:  2.400  pesetas 
cada  uno. 

Las  señas  de  Idealogic  son: 

Gran  Via  de  Carlos  III,  97  K, 

08028  Barcelona 
[Teléfono  (93)  330  33  08 

Próximamente  nos  sorprenderán  con 
más  lanzamientos  que  tuve  oportunidad 
de  ver  en  la  fase  de  preparación.  Entre 
eljos  ya  tienen  preparado  un  nuevo  Joy¬ 
stick  para  los  equipos  Commodore  (VIC 
y  C-64),  que  permite  un  control  más 
suave,  también  una  tabla  gráfica  para 
digitalizar  mapas  o  dibujos,  unos  nuevos 
monitores  de  alta  resolución  en  color  con 
sonido  y  un  precio  relativamente  asequi¬ 
ble  (unas  60.000  pesetas),  nuevos  juegos 
del  tipo  de  aventuras,  programas  de  dieté¬ 
tica,  aerobic,  etc... 


Ferre  Moret:  Soft  y  Hard 


Vimos  el  nuevo  juego  que  esta  casa  pre¬ 
sentó  en  el  salón,  y  hemos  de  reconocer 
que  la  reproducción  de  la  pantalla  que 
sacamos  en  color  en  la  revista  no  puede 
igualar  jamás  a  la  realidad,  la  primera 
impresión  al  ver  la  pantalla  del  juego  es 
que  nos  encontramos  volando  sobre 
Washington,  podemos  distinguir  (a  Casa 
Blanca,  el  Capitolio,  el  Washington  Memo¬ 
rial,  toda  la  avenida,  las  casas  e  incluso 


una  bandera  agitada  por  el  viento.  El 
mérito  de  este  programa  reside  precisa¬ 
mente  en  la  calidad  de  los  gráficos  que 
han  conseguido,  son  una  perfecta  foto¬ 
grafía  como  pudisteis  comprobar  los  que 
pasateis  por  Sonimag  y  lo  visteis  en  su 
stand.  También  hay  que  decir  que  el  final 
del  juego  es  aún  mejor,  si  consigues  pasar 
de  150  puntos,  pasas  a  luchar  contra  la 
nave  madre  en  el  espacio,  toda  esta  parte 
del  juego  está  realizada  con  gráficos  de 
alta  resolución  tridimensionales,  y  al  ir 
moviéndose  hacia  un  lado  u  otro  da  la 
sensación  de  viajar  entre  las  estrellas  a 
una  gran  velocidad.  Por  fin  si  consigues 
destruir  la  nave  nodriza,  te  reciben  en 
Washington  con  una  gran  fiesta  de  fuegos 
artificiales  y  música.  Creo  que  es  un  juego 
digno  de  verse,  y  si  te  gusta,  cómpralo.  Su 
precio  es  un  poco  alto  (9.975  pesetas), 
pero  es  el  primer  juego  que  veo  con  esa 
calidad  de  gráficos. 

También  tuvimos  oportunidad  de  com¬ 
probar  el  funcionamiento  de  las  tarjetas 


de  64K  RAM  para  el  VIC-20,  sobre  las 
que  me  habíais  preguntado  en  bastantes 
cartas,  pues  bien,  ahora  puedo  contestar: 
en  primer  lugar  la  RAM  disponible  para 
programas  y  datos  en  todo  momento  son 
sólo  28K  en  la  zona  de  programas  Basic  y 
3K  entre  las  direcciones  1024  y  4096  y  6K 
en  las  direcciones  que  normalmente  se  uti¬ 
lizan  para  los  cartuchos  de  juego  y  el 
super-expander.  De  este  modo  podemos 
tener  siempre  enchufada  la  tarjeta  y 
cuando  queremos  cargar  un  juego,  el 
Forth  o  el  super-expander  sólo  tenemos 
que  cargarlo  de  cinta,  con  lo  que  no 
estropeamos  el  conector  de  expansión  al 
enchufar  y  desenchufar  los  cartuchos 
constantemente. 

El  sistema  para  utilizar  el  resto  de  la 
memoria  que  queda  oculta  bajo  la  ROM  y 
las  unidades  de  entrada  salida  del  VIC-20, 
consiste  en  utilizar  los  comandos  LOAD 
y  SAVE  con  el  número  de  periférico 
comprendido  entre  200  y  207  (el  cassette 
es  el  1,  el  disco  el  8,  etc.).  De  este  modo  da 
la  sensación  de  disponer  de  8  cassettes  o 
discos  super-rápidos  que  en  menos  de  un 
segundo  te  cargan  en  la  memoria  los  pro¬ 
gramas  que  tenías  ocultos,  y  que  se  man¬ 
tienen  guardados  hasta  que  apagues  el  VIC 
o  guardes  otro  en  su  mismo  lugar.  Natu¬ 
ralmente  el  contenido  de  estos  ocho  cas¬ 
settes  ocultos  se  puede  transferir  a  cinta  o 
disco  par  utilizarlo  en  otra  ocasión. 

La  casa  Ferre  Moret  tiene  además  unos 
programas  de  contabilidad,  control  de 
Stock,  etc.,  ya  preparados  para  utilizar 
todas  las  posibilidades  de  esta  tarjeta  y  de 
las  de  40/80  columnas. 

Otra  novedad  que  presentó  en  la  feria 
era  la  tarjeta  de  80  columnas  para  el  C-64, 
similar  en  funcionamiento  y  calidad  a  la 
del  VIC  20,  y  al  mismo  tiempo  anunció  la 
próxima  presentación  de  una  tarjeta  de 
256K  RAM  para  el  C-64,  que  imaginamos 


funcionará  de  modo  similar  al  de  la  de 
64K  del  VIC,  y  algunos  juegos  más  que 
tiene  en  cartera  para  comercializar  próxi¬ 
mamente. 

Las  señas  de  Ferre-Moret,  S.  A.  son: 
Tusset,  8,  Entresuelo  2 
08006  Barcelona 
Teléfono  (93)  218  02  93 

4  ^  ^  4 


VIC  20 

TARJETA  MULTIFUNCION 

•  Amplía  64  K  RAM 

•  Zócalo  8  K  EPROM 

•  ¡Traspasa  y  ejecuta 
desde  cinta  programas 
de  cartucho!  (Novedad) 

p.v.p.:  20.600  pts. 

Pedidos  a  ICR 
C/  Farnós,  39 
Barcelona  08032 

Elija  forma  de  pago: 

□  Talón  bancario 

□  Contrareembolso 


Commodore  World  Noviembre  1984/53 


COMPARTIENDO  EXPERIENCIA  ENTRE  AMIGOS  _ _ 


Magia 


La  MAGIA  son  trucos,  la  MAGIA  es 
divertida. 

La  MA  GIA  es  hacer  lo  que  nadie  se  ha 
atrevido  y  resulta  ser  la  fuente  más  com¬ 
pleta  de  información  para  la  informática 
práctica. 

La  MAGIA  es  una  sección  mensual  llena 
de  consejos,  trucos,  de  esto  y  aquello  del 
mundo  del  software,  hardware  >■  aplicacio¬ 
nes,  trucos  descubiertos  por  los  demás  que 
hacen  que  la  informática  sea  más  fácil,  más 
divertida  o  más  animada. 

MAGIA  habla  de  ideas  sencillas,  pro¬ 
gramas  de  una  sola  línea,  subrutinas  útiles, 
hechos  de  informática  poco  conocidos  y 
otras  cosas  de  interés. 

Los  trucos  de  magia  enviárnoslos  compro¬ 
bados,  pues  hay  varios  incorrectos.  ¡Ah!  y 
no  nos  mandéis  trucos  repetidos...  ¡Listos!. 
Premios:  Ver  pág.  5. 


PCTS  Y  VELOCIDAD 


Amigos  de  Commodore: 

Os  envió  un  par  de  trucos  para  que  los  publiquéis  (si  podéis)  en  la 
sección  de  MAGIA.  El  primero  sirve  para  detener  un  programa  interac¬ 
tivo,  pulsando  la  tecla  SHIFT  LOCK: 

WAIT  IS2,  1,1  -  CBM  2000,  3000,  4000  y  8000  con  el  basic  2  ó  4 
WAIT  516,  1,1  -  CBM  2000  con  el  basic'l 
WAIT  653,  1,1  -  CBM  64  y  VIC  20 

Lo  que  hace  esta  sentencia  es  comprobar  si  la  tecla  SHIFT  (o  SHIFT 
LOCK)  está  pulsada:  si  la  respuesta  es  negativa  el  control  pasa  a  la 
siguiente  sentencia;  si  es  afirmativa,  espera  hasta  que  la  tecla  deje  de 
estar  pulsada. 

El  segundo  truco  sirve  para  los  ordenadores  2000  y  3000 

POKE  59468,  62 

Esta  sentencia  aumenta  considerablemente  la  velocidad  de  edición  en 
pantalla,  alcanzando  la  velocidad  de  la  serie  4000.  En  mi  ordenador  (un 
2000)  la  pantalla  sufre  varias  perturbaciones  antes  de  restablecerse  la 
normalidad,  no  ocurre  así  con  la  serie  3000. 

Marco  Rossijr. 

C/Masferrer  n"  14 
08028  Barcelona 


NOTAS:  En  los  equipos  CBM  2000,  3000,  4000  y  8000  no  hemos  podido 
comprobar  este  truco  (el  primero) 

El  segundo  truco  apareció  hace  unos  años  (dos  o  tres)  en  la  revista  inglesa 
Computing  Today,  y  funcionaba,  pero  unos  meses  más  tarde  recibieron 
algunas  cargas  que  publicaron,  quejándose  de  que  los  PETs  se  averiaban 
por  culpa  del  POKE.  Al  parecer  utilizar  algunas  veces  este  POKE  no  era 
malo,  pero  el  uso  continuado  perjudicaba  de  algún  modo  a  la  unidad  de 
pantalla  (no  lo  podemos  asegurar,  sólo  lo  mencionamos,  por  si  acaso). 


BUFFER  DE  TECLADO  VIC -20  Y  C-64 

He  leído  en  varios  artículos  de  diversas  revistas,  la  utilización  de  la 
posición  de  memona  198,  y  en  otros  además  utilizaban  también  las 
posiciones  631  a  640,  pero  no  he  encontrado  ningún  articulo  con  una 
explicación.  Hace  poco  tiempo  que  leí  que  estas  posiciones  son  el  buffer 
del  teclado. 

La  explicación  del  funcionamiento  del  buffer  parece  que  se  intenta 
mantener  en  secreto.  Por  lo  que  sé,  durante  la  ejecución  de  un  programa 
en  basic,  el  VIC-20  escrudriña  el  teclado  sesenta  veces  por  segundo.  Si 
se  pulsa  una  tecla,  el  ordenador  no  la  interpreta  sino  que  la  almacena  en 
el  buffer  a  partir  de  la  posición  631  y  hacia  la  640.  La  posición  198 
sirve  para  contar  el  número  de  teclas  pulsadas. 

Una  vez  que  se  detiene  el  programa  (mediante  un  END,  INPUT,  GETS 
o  STOP),  el  buffer  se  vacía  de  nuevo,  imprimiendo  las  teclas  u  órdenes 
pulsadas. 

Para  entenderlo  mejor  y  que  sirva  de  ejemplo,  podríamos  aprovechar 
esta  característica  del  VIC-20  para  meter  una  función  (especialmente 
interesante  para  gráficos)  mediante  un  INPUT,  con  el  cual  haremos  que 
un  programa  se  escriba  una  linea  el  mismo. 

Tomo  de  ejemplo  el  programa  de  gráficos  en  tres  dimensiones  que  me 
publicasteis  en  el  número  3  de  vuestra  revista. 

Lo  que  vamos  a  hacer  va  a  ser  llenar  el  buffer  de  teclado  desde  el 
mismo  programa  que  vamos  a  modificar.  Para  vaciar  el  buffer  pondre¬ 
mos  un  END,  luego  haremos  un  "return"  sobre  la  linea  a  introducir 
que  antes  habremos  escrito  en  pantalla  y  por  último  haremos  un  RUN  a 
la  siguiente  parte  del  programa. 

Por  último  recordar  que  estamos  cambiando  una  línea  de  programa  y 
por  tanto  se  borran  todas  tas  variables.  El  mismo  sistema  se  puede 
utilizar  para  mandar  LOADs,  SAVEs,  NEWs,  LOAD  +  RUNs...  y  lodo 
lo  que  se  os  ocurra;  sólo  es  cuestión  de  llenar  el  buffer  y  parar  el 
programa. 

10  INPUT  “Función  f(x,y)=”;  aS 
20  PRINT  “[SHIFT  CLR]  500;  z=”;  a$ 


54/Commodore  World  Noviembre  1984 


30  POKE  631,  ASC(“[CLR]”):  POKE  632,  13:  POKE  633,  ASC(“R") 
40  POKE  634,  ASCCISHIFT  UJ):  POKE  635,  ASC(“1"):  POKE  636, 
ASC(“0”; 

50  POKE  637,  ASC(“0”):  POKE  638,  13 
60  POKE  198,8 
70  END 

Alberto  y  Javier  Anglada  Cantarell 
Teléfono:  247  91  62 
c/  Mandri.  68 
Barcelona 

Club  de  ordenador  personal  EINEA 
Teléfono:  215  72  74 
Rbla.  Catalunya,  50 
Barcelona 

V  V  V  V  V 

IMPRESORA  Y  BUSQUEDA  DE  PROGRAMAS 

Estimados  amigos  de  Commodore  World: 

Me  llamo  Román  Estébanez  y  vivo  en  Pamplona.  Poseo  un  Commo¬ 
dore  64,  un  cassette  y  una  impresora  MPS-801.  Os  mando  estos  trucos 
que  espero  sean  de  vuestro  agrado. 

Son  los  siguientes: 

1.  Este  truco  facilita  el  paso  en  la  impresora  del  modo  mayúsculas  > 
gráficos  al  de  minúsculas.  Consiste  en  pulsar  dentro  del  Print#  la  tecla 
de  cursor  hacia  abajo.  En  la  pantalla  aparecerá  una  Q  en  video  inverso. 
Esto  hará  que  la  impresora  comience  a  escribir  en  modo  mayúsculas  sin 
necesidad  de  usar  ningún  CHR# 

2.  Se  trata  de  un  truco  para  facilitar  la  búsqueda  de  un  programa  en 
el  cassette.  Basta  con  colocar  un  cable  desde  la  patilla  N5  de  la  salida 
audio/video  al  cable  n4-d  (blanco-lectura  del  cassette)  en  el  Port  del 
cassette. 

Abriendo  el  volumen  con  un  POKE  54296,  I  podremos  monitorear  a 
través  del  altavoz  de  nuestro  televisor  lo  que  hay  grabado  en  la  cinta, 
ayudándonos  a  encontrar  los  programas  por  su  pitido  inicial. 

NOTA:  Este  truco  es  muy  sencillo  en  el  cassette  antiguo,  ya  que  basta 
con  introducir  un  cable  pelado  por  el  hueco  que  deja  el  cable  blanco  en 
la  parte  trasera  del  conector.  En  el  moderno  habrá  que  desmontar  la 
clavija  y  hacer  la  conexión  oportuna. 

Román  Estébanez  Santesteban 
C/San  Fermín,  49  izq. 
Pamplona  (Navarra) 
Telé/.:  (948)  23  63  72 

V  V  V  V  * 

PRINT  AT  C-64 

Y  ahí  va  el  truco.  Se  trata  de  una  rutina  en  código  máquina  para 
simular  PRINT  AT  (ya  sé  que  no  soy  muy  original,  perdonadme). 
Utiliza  la  rutina  del  Iternal  PLOT.  El  programa  está  hecho  en  un  C-64. 
Para  usarlo,  después  de  ejecutar  el  programa,  se  escribe  SYS  49300. 
POSX,  POSY,  "MENSAJE”  cuando  quieras  escribir  algo. 

10  REM  ••PRINT  AT*» 

20  SU  =  0:  I  =  49300 

30  FOR  X=0  TO  30:  READ  A:  POKE  I+X.A:  SU=SU+A:  NEXT 
40  1F  SU  O  4300  THEN  PRINT  “ERROR  EN  LINEAS  DATA”: 
END 

50  PRINT  "UTILIZA  SYS  49300,  POSX,  POSY,”;  CHR$(34); 

"MENSAJE”;  CHR$(34) 

60  END 

70  DATA  32,241,  183,  224,  40,  176,  9,  134,  252,  32,  241,  183,  224,  24 
80  DATA  144,  3,  76,  72.  178,  24,  184.  252,  32.  240,  255,  32,  253,  174 
90  DATA  76.  160  ,170 

Javier  Ontañón  Ruiz 
Estrella  Polar,  22.  12  B 
28007  Madrid 

V  V  V 

ACELERADOR  EN  EL  C-64 

¡¡Aqui  estoy,  tal  como  había  dicho!! 

Bueno,  aqui  están  unas  MAGIAS  que  no  son  las  que  os  había  dicho 
que  os  iba  a  mandar,  pero  es  lo  mismo. 

La  primera,  es  un  acelerador  para  el  C-64: 

Tecleando  POKE  56325,  0  los  programas  se  aceleran  el  cursor  se 
retarda. 

Tecleando  POKE  56325,  255  los  programas  se  retardan  el  cursor  se 
acelera,  y  se  mueve  como  un  Fórmula- 1 . 

Tecleando  POKE  56325,  51  todo  vuelve  a  la  normalidad. 

OJO,  con  estos  POKEs,  el  reloj  deja  de  funcionar  correctamente.  No 
os  fiéis. 


La  segunda  MAGIA  es  para  controlar  el  color  de  las  letras  y  símbo¬ 
los  gráficos  de  éste: 

POKE  646,  color 
¿A  que  soy  un  genio? 

P.D.:  ¡¡como  encuentre  al  lio  que  dice  en  el  Manual  del  Usuario  eso 
de  ‘no  necesita  saber  música  para  tocar  algo  con  su  COMMODORE- 
64*  lo  mato!!. 

El  único  sonido  que  me  sale  a  mi  es  el  que  hago  cuando  pulso  las 
teclas  o  cuando  se  pone  la  DATASSETTE  en  marcha. 

Juan  Rafael  Oscar  Martín  y  Mihalic 
Guayadeque.  4.  3“  Izda. 
33009  Las  Palmas 

V  V  V  V  V 

SINGO 

Esta  es  la  primera  vez  que  escribo  y  me  gustaría  que  publicaseis  en  la 
sección  de  MAGIA  este  sencillo  BINGO  que,  creo,  hará  las  delicias 
para  los  que  empiezan,  que  no  están  para  copiar  largos  listados.  Como 
veréis,  está  basado  en  la  función  RND  y  una  vez  copiado  el  listado  y 
pulsado  RUN,  saldrá  el  primer  número  y  tan  sólo  hará  falta  pulsar 
RETURN  para  que  los  números  vayan  apareciendo  ¿fácil  no...? 

Vale  para  el  C-64  y  el  VIC-20. 

LISTADO  DEL  “BINGO"  PARA  MAGIA. 

10  PRINT  “[CLR]” 

20  PRINT  “=BINGO=" 

30  REM  PEDRO  CARRERAS 
40  PRINT  "" 

50  PRINT  INT  (RND  (A)»  99) 

60  INPUT 
70  RUN 

Pedro  Carreras  Luque 
c/  Ampurdá.  30-2° -4  a 
Paréis  del  Vallés 
Barcelona 


No 

derroche  dinero 
comprando  programas. 
Alquílelos 

y  disfrute  de  ellos  hasta 
que  se  aburra. 


Pídanos  nuestro  extenso  catálogo 
j  al  Apdo.  nQ  12  de  ILLORA  (Granada) 
V  asómbrese  de  las  ventajas. 


Condiciones  especiales  para  socios. 


¡¡¡INFORMESE!!! 


Enviamos  a  toda  España. 


EEm’  S(0)¡FTJ"°(Mí  Apartado  12.  ILLORA  (Granada) 


Commodore  World  Noviembre  1984/55 


C-64  MUSICAL  CON  MIDI 

Os  pediría  me  indicarais 
direcciones  de  casas  de 
software  (nacionales  o 
extranjeras)  que  comer¬ 
cialicen  aplicaciones  musicales  para  el 
C-64,  desarrollos  para  el  COMMODORE 
y  el  M.I.D.l  (Musical  Instrument  Digital 
Interface). 

DANIEL  RIOS  ARAN  DA 

C/ROGER  DE  LA  FLOR.  5  -  3°  A  ESC. 

DCHA.  -  50010  ZARAGOZA 

Puedes  ponerte  en  contacto  con  la  casa 
Vietronic,  S.A.,  que  es  la  que  acaba  de  lan¬ 
zar  en  el  mercado  español  el  M.C.l.  (Midi 
Computer  Interface)  para  el  C-64  y  el 
Spectrum  4SK  (mira  en  noticias  Sonimag). 
Las  señas  de  esta  casa  son:  Vietronic,  S..4. 
C/Bolivia,  239,  08020  Barcelona.  Tel. 
93-3074712. 

OPERADORES  LOGICOS 


Tengo  algunas  pregun¬ 
tas.  1 )  ¿Cómo  se  utilizan 
y  qué  indican  los  opera¬ 
dores  lógicos  ANDy  OR? 
2)  ¿En  un  registro  cómo  puedo  poner  a 
cero  o  a  uno  determinados  bits  según  mi 
voluntad?  (lo  digo  por  el  registro  17  del 


VIC-20 

Ptas 

Tarjeta  64K  RAM+2K  EPROM 

18.900 

Tarjeta  2K+2K  EPROM 

Tarjeta  40/80  columnas+ 

3.695 

3.5K  RAM 

16.350 

Unidad  de  expansión  de  2  slots 

3.200 

Unidad  de  expansión  de  5  slots 

9.900 

Primer  Buffer  PAR/PAR  16K 

24.790 

CBM64 

Tarjeta  80  columnas 

17.900 

Tarjeta  410  8K  EPROM 

4.750 

Unidad  de  expansión  de  2  slots 

3.200 

Unidad  de  expansión  de  S  slots 

12.995 

Primer  Buffer  SER/PAR  32K 

27.950 

PARA  VIC-20  Y  CBM64 

Tableta  gráfica  KOALA-PAD 

23.500 

PARA  TODO  TIPO  DE  ORDENADORES 

PROGRAMADOR  DE  EPROMS 

16.995 

BORRADOR  DE  EPROMS 

Pedidos  e  información: 

DELTABIT 

Colón.  20-4a 

SILLA  (Valencia) 
Teléf.:  (96)  120  29  25 

8.775 

CflRTR  BLANCA 


Chip  de  vídeo  del  C-64).  3)  ¿Qué  es  el 
Bit-map?  4)  ¿Cómo  funciona  (y  qué  es)  la 
instrucción  SYS?  Como  habréis  visto  casi 
todas  mis  dudas  van  de  cara  a  la  alta  reso¬ 
lución  de  la  que  no  tengo  ni  idea  de  cómo 
se  trabaja  con  ella,  por  lo  que  propongo 
que  dediquéis  algún  articulo  al  respecto. 
CESAR  VILLELLA  BONA 
C/PERE.  53.  f.  1‘ 

BARCELONA 

I. — El  operador  AND  hace  que  el  resultado 
de  la  operación  sea  verdad  (uno)  sólo  si 
todas  las  premisas  son  verdad.  El  resultado 
de  la  utilización  de  OR  es  verdad  cuando 
cualquiera  de  las  premisas  es  verdad.  Esto 
es  aplicable  a  los  bytes  considerando  que 
las  operaciones  se  realizan  bit  a  bit  (el  bit 
cero  de  una  de  las  premisas  con  el  cero  de 
la  otra  da  el  bit  cero  de!  resultado,  etc.). 

2.  — Para  poner  a  cero  un  bit  determi¬ 
nado  puedes  utilizar  el  AND,  y  para 
ponerlo  a  uno  el  OR.  Ejemplo:  A-A  OR 
16  pone  a  uno  el  bit  cuarto  de  A;  A=A 
AND  253  pone  a  cero  el  bit  primero  de  A. 

3.  — El  bit-map  es  uno  de  los  sistemas  de 
representación  en  pantalla  que  utilizan  los 
ordenadores;  hace  que  cada  punto  de  la 
pantalla  se  corresponda  con  un  bit  en  la 
memoria,  de  modo  que  para  iluminar  el 
punto  se  pone  el  bit  a  I,  y  para  apagarlo  se 
pone  a  cero. 

4.  — La  instrucción  SYS  hace  que  la 
CPU  salte  a  un  programa  en  código 
máquina  que  se  encuentre  colocado  en  la 
dirección  que  indica  el  número  que  sigue  a 
SYS. 

VIC-20  RADIO  ACTIVO 


Me  gustaría  que  me  res¬ 
pondieran  a  dos  pregun¬ 
tas:  ¿Existe  alguna  apli¬ 
cación  de  mi  ordenador 
personal  (VIC-20)  en  CW  o  RTTY?  ¿Cuál 
es  esa  aplicación? 

JOSE  BRA  VO  RODRIGUEZ 
CORDOBA 

En  algunos  de  los  distribuidores  de  Com- 
modore  (grandes  almacenes  por  ejemplo), 
he  podido  ver  algunos  interfaces  y  progra¬ 
mas  para  utilizar  el  VIC-20  en  CW  y 
RTTY,  el  nombre  comercia!  que  le  dieron 
al  más  popular,  fue  VICHAM  (Ham-radio 
amateur),  y  también  tenias  programas  de 
Micro  Electrónica  y  Control,  para  la  ges¬ 
tión  de  las  tarjetas  QSL’s  etc... 

PROBLEMAS  CON  EL  64 

Tengo  un  Commodore 
64  y  desde  el  principio, 
he  observado  que  con 
frecuencia  al  comenzar  a 
trabajar,  el  funcionamiento  es  incorrecto, 
apareciendo  a  veces  el  mensaje  inicial  en 
forma  estraña  o  el  mensaje:  OUT  OF 
MEMORY  IN  0,  igualmente  mezclado 
con  signos  diversos. 

El  problema  se  corrige  desconectando  y 
conectando  de  nuevo  el  ordenador  una  o 
más  veces. 

Si  existe  un  cartucho  conectado,  como 
SIMONS’BASIC  o  FUTBOL,  sobre  todo 


con  este  último,  puede  ser  necesario  des¬ 
conectar  y  conectar  hasta  cinco  o  seis 
veces  para  que  el  funcionamiento  (no  sólo 
en  mensaje  inicial)  sea  correcto. 

Este  fenómeno  es  menos  acusado  si  el 
ordenador  ha  permanecido  cierto  tiempo 
en  servicio. 

Quisiera  saber  si  se  trata  de  un  defecto 
o  avería  o  es  algo  que  suele  ocurrir  y,  en 
cualquier  caso,  a  qué  puede  ser  debido. 
Gracias: 

LAZARO  VELASCO 
POBL  C.  NUCLEAR  18  B 
NA  VALMORAL 
CACERES 

Creemos  que  debes  ponerte  en  contacto 
con  el  servicio  técnico  de  Micro  Electró¬ 
nica  y  Control,  ya  sea  directamente  o  bien 
por  medio  del  distribuidor  donde  compraste 
el  ordenador,  ya  que  no  sabemos  dónde 
puede  residir  la  averia.  Yo  creo  que  es  una 
averia  que  pudiera  haberse  originado  al 
enchufar  o  desenchufar  un  cartucho  con  la 
alimentación  del  C-64  conectada,  pero  no 
puedo  asegurarlo,  ya  que  no  sé  si  esto  se  ha 
hecho  en  alguna  ocasión. 

Que  el  problema  varíe  cuando  el  ordena¬ 
dor  está  “ caliente ”  puede  ser  porque  la 
CPU  o  los  buffers  de  direcciones  y  datos, 
ya  que  la  carga  que  soportan  puede  variar 
con  ¡a  temperatura.  ¡NO!...  ¡No  pruebes  a 
ponerle  un  secador  de  pelo  para  calentarlo! 
la  averia  que  podía  originarse  podría  ser 
mucho  peor. 

EL  TURBO 

Me  gustaría  que  me  res¬ 
pondierais  a  unas  cuan¬ 
tas  preguntas: 

—El  cartucho  TURBO 
para  que  el  DATTASSETTE  sea  más 
veloz,  ¿es  útil?  ¿Lo  puedo  adquirir  en 
Barcelona?  ¿Sirve  también  para  cintas 
pregrabadas?,  en  definitiva,  ¿vale  la  pena 
comprarlo?...  Espero  vuestra  sincera  opi¬ 
nión. 

PEDRO  CARRERAS  LUQUE 
C/AMPURDA,  30-20  4" 

PARETS  DEL  VALLES 
BARCELONA 

No  he  tenido  oportunidad  de  comprobar 
las  nuevas  versiones  del  FAST  TURBO 
que  se  encuentran  en  el  comercio,  pero  si 
son  mejores  que  la  antigua  debemos  descu¬ 
brirnos  ante  los  alemanes. 

Hace  un  par  de  semanas  me  llegó  una 
copia,  de  esas  que  circulan  de  uno  a  otro 
socio  de  los  clubs  de  ordenadores  existen¬ 
tes,  del  antiguo  Fast  Turbo,  y  he  de  recono¬ 
cer  que  me  dejó  asombrado  por  la  velocidad 
de  carga  de  los  programas,  es  un  diez  por 
ciento  más  rápido  que  la  unidad  de  disco 
1541  siempre  y  cuando  el  programa  se 
encuentre  justo  en  la  vuelta  donde  tenemos 
colocada  ¡a  cinta,  y  tengamos  el  turbo  ya 
cargado. 

Yo  me  negaba  a  admitiría,  pero  tas 
pruebas  con  cronómetro  en  mano  son  irre¬ 
batibles,  claro  que  no  todo  son  ventajas: 
Las  cintas  dan  más  problemas  al  tratar  de 
leerlas  con  otro  datassette  distinto  que  con 


56/Commo4ore  World  Noviembre  1984 


...  V  S€fiMOS 


el  sistema  original  de  grabación  del  orde¬ 
nador,  esto  se  debe  a  que  los  datos  se  gra¬ 
ban  sólo  una  vez  (en  vez  de  dos),  y  a  más 
velocidad  con  lo  que  el  ajuste  de  la  cabeza 
debe  ser  perfecto. 

Si  de  verdad  merece  la  pena  o  no  debes 
decidirlo  tú,  ya  que  con  la  unidad  de  disco 
puedes  utilizar  ficheros  de  acceso  directo,  y 
en  cinta  sólo  los  secuenciales...  la  decisión 
es  tuya... 

¿CHIP  DE  VIDEO  ROTO? 

Queridos  amigos:  siento 
no  poder  vanagloriarme 
de  ser  un  suscriptor  de  su 
revista,  pero  a  cambio  les 
diré  que  tengo  todos  los  números  y  en  mi 
librería  me  los  reservan  todos  los  meses. 

El  motivo  de  escribirles,  es  para  con¬ 
tarles  mi  problema  a  fin  de  que  puedan 
servirse  de  mi  experiencia  todos  los  ami¬ 
gos  que  lo  deseen. 

Tengo  un  Commodore-64  desde  hace  un 
mes  aproximadamente.  Para  comprarlo  vi¬ 
sité  mil  tiendas  en  busca  de  un  precio  venta¬ 
joso.  Por  casualidad  en  la  tienda  de  un  ami¬ 
go  mío  encontré  mi  Commodore  a  un  pre¬ 
cio  super  fabuloso.  Prácticamente  a  mitad 
de  precio.  Me  interesé  por  la  garantía  y  de¬ 
más  detalles  por  lo  que  pude  comprobar 
que  dicha  máquina  estaba  totalmente  en  re¬ 
gla  por  lo  que  deduje  que  el  precio  podía  ser 
un  error  de  cálculo  en  mi  amigo,  pero  no 
era  así.  Compre  el  teclado  y  una  unidad 
de  disco. 

Cierto  dia,  pasando  un  programa  de  su 
revista,  se  me  fue  la  imagen  de  la  pantalla 
y  no  pude  recuperarla.  Consulté  en  Ali¬ 
cante  y  me  dijero  que  se  había  roto  el  chip 
de  video. 

El  problema  vino  cuando  la  garantía 
no  era  válida  para  ellos  y  si  mandaba  el 
aparato  a  su  garantía  de  Barcelona, 
suponía  estar  en  el  dique  seco  por  tres  o 
cuatro  meses.  Decidí  pagar  la  reparación 
en  aras  de  la  brevedad. 

Lo  importante  de  todo  esto  es  el  con¬ 
sejo  que  me  dieron:  NO  PONER  NUNCA 
EL  ORDENADOR  CERCA  DE  UNA 
FUENTE  DE  CALOR.  Todo  el  mundo 
lo  sabe,  de  acuerdo  — NI  TAN  SIQUIERA 
BAJO  LA  LUZ  DE  UN  FLEXO.  Ese  fue 
mi  error.  Trabajaba  de  noche  y  la  luz 
directa  de  un  reflector  — flexo —  se  cargó 
el  dichoso  chip. 

Ya  lo  sabéis  amigos,  NADA  DE 
LUCES  DIRECTAS.  Es  una  pena  que  lo 
olvidasen  en  el  manual. 

Si  Vd.  creen  que  esto  es  verdad,  sería 
buena  idea  que  lo  publicasen  en  su 
revista.  Un  saludo.  ¡Ah.  ánimo!. 

BERNARDO  BANULS  SALA 
AVDA.  GABRIEL  MIRO 
EDIFICIO  GLORIETA  8Q-23 
CALPE  —ALICANTE— 

Tengo  mis  dudas  sobre  la  parte  que  pudo 
resultar  dañada,  pero  me  parecería  más 
lógico  si  se  estropease  una  de  las  R  OMs  al 
borrar  su  contenido  por  estar  expuesta  a 
algún  tipo  de  radiación,  lo  que  desde  luego 
sería  desaconsejable  es  dejar  el  ordenador 


debajo  de  una  de  las  potentes  lámparas  de 
vapor  de  mercurio,  ya  que  estas  tienen  un 
rico  espectro  de  ultravioletas  que  podría 
llegar  a  borrar  una  de  las  memorias 
EPROM  (que  son  borrables),  pero  creo  que 
el  64  utiliza  ROM  en  su  lugar  (estas  no  son 
borrables). 

LISTAS  DE  PRECIOS 

Apreciables  amigos,  mi 
edad  es  de  catorce  años  y 
os  escribo  para  pediros, 
si  fuera  posible,  recibir 
tarifas  de  publicidad:  Cassette,  cintas, 
cartuchos,  etc.,  en  general  de  todos  los 
accesorios  del  VIC-20. 

La  razón  para  que  os  pida  ésta  es  que  hace 
muy  poco  tiempo  que  tenemos  el  ordena¬ 
dor  y  prácticamente  no  sabemos  nada  y 
haber  si  de  poco  en  poco  podemos  irnos 
metiendo  en  este  pequeño  gran  mundo  de 
la  informática. 

Ya  que  de  momento  somos  unos 
mediocres  en  la  dicha  materia.  Bueno 
corto  el  rollo  y  pido  disculpas  por  las 
molestias  que  pueda  ocasionar. 

JOAN  M.  ROBLES  ARANS 
C/DOCTOR  TRUETA,  31-33  T,  f 
CASTELLDEFELS 
BARCELONA 


Publicamos  tus  señas  para  que  las  casas 
que  distribuyen  accesorios  y  programas 
para  el  VIC-20  te  envíen  las  listas  a  tu 
domicilio. 

SIMBOLOS  RAROS 

Tengo  una  pregunta  sobre 
la  tecla  Run/Stop,  y  es 
que  al  colocar  comillas  y 
al  apretar  esta  tecla,  apa¬ 
rece  en  símbolo  de  una  C  invertida;  ¿Cuál 
es  el  significado?  ¿Para  qué  sirve? 

Existe  una  tecla  representada  por  una 
A  minúscula  dentro  de  un  círculo,  ¿para 
qué  sirve? 

Tengo  un  programa  que  al  grabarlo 
sale  en  la  pantalla  LOAD  ERROR.  Existe 
algún  POKE/S  para  el  Commodore  64, 
que  permita  grabarlo  en  Cassette  sin  pro¬ 
blemas,  aunque  en  el  duplicado  siga  apare¬ 
ciendo  el  LOAD  ERROR. 

Quiero  advertiros  que  en  el  manual 
aparece  en  la  página  21  la  palabra  “can- 
viando”  con  “V”. 

ALEJANDRO  CANTO  NAVARRO 
DOCTOR  GADEA.  I  2’  E  y  F 
ALICANTE 

La  C  invertida  que  aparece  al  pulsar  la 
tecla  de  STOP  cuando  estás  en  el  modo  de 
comillas,  se  debe  al  funcionamiento  interno 


EN  VALLADOLID 
KENT  ELECTRONIC 

C/Duque  de  la  Victoria,  13 
Teléf.  (983):39  65  84 

SPECTROVIDEO 


Accesorios,  programas  profesionales,  juegos 


APRENDE  A  PROGRAMAR 
POR  ORDENADOR 


*  Cursos  completos  y  trimestrales 
•  Clases  muy  reducidas,  horario  flexible 
•  Profesores  capacitados. 

•  Cada  alumno  dispondrá  de  un  ordenador 

NUEVOS  CONCEPTOS 

C/  Magallanes,  1-1°A  -  VALLADOLID 
Teléf.  (983)  47  58  07 


C,\c  PasCAL 

*  Xvc°6<\ 

¿n~  -qj& 


b  fo*1 


NUEVOS 

CONCEPTOS 


Commodore  World  Noviembre  1984/57 


.  PR€GUNTON€S 


del  ordenador  que  cambia  la  representación 
el  trabajar  entre  comillas.  No  si  si  te  ser¬ 
virá  para  algo,  pero  de  momento  no  le  he 
encontrado  aplicación. 

La  arroba  que  es  ese  símbolo  que  parece 
una  “a” metida  en  un  circulo,  se  usa  con  el 
programa  Wedge  para  enviar  comandos  a! 
disco.  Otros  programas  la  utilizan  para 
enviar  una  ene  a  la  impresora,  otros  para  el 
PRINT  A  T,  etc. 

Respecto  a  la  cinta,  puedes  leer  el  artí¬ 
culo  que  apareció  en  el  número  anterior 
sobre  las  “cintas  rebeldes",  y  también  un 
truco  que  hemos  publicado  en  uno  de  los 
últimos  números  que  te  entraba  el  pro¬ 
grama  aunque  hubiese  entrado  con  errores. 

CODIGO  MAQUINA 


El 


Desearía  que  me  explica¬ 
seis  la  manera  de  intro¬ 
ducir  programas  en  códi¬ 
go  Máquina  mediante 
POKE,  las  direcciones  de  memoria  que  se 
utilizan  y  el  significado  de  los  números 
que  van  después  de  la  coma. 

Ruego  explicación  de  este  mi  problema 
a  algún  lector  compasivo  (o  sea  buen 
commodoriano  y  amigo)  a  poder  ser  por 
carta,  para  que  la  explicación  sea  clara. 
J.l.P. 

C/PICO  DE  ARTILLEROS,  67.  1 •  B 
280 JO  MADRID 

Esto  lo  publicamos  en  el  cursillo  de  len¬ 
guaje  máquina  del  número  anterior  ( octu¬ 
bre ).  Espero  que  el  final  del  articulo  con¬ 
teste  a  tu  pregunta. 


HARDCOPY  DE  PANTALLA 

Queridos  editores:  Me 
— \.  llamo  Alex  y  ha  llegado 
/  \  a  mis  manos  un  pro- 

^ -  grama  mediante  el  cual 

se  puede  dibujar  en  alta  resolución  con  el 
JOYSTICK.  Agradecería  que  publicasen 
o  me  remitiesen,  si  está  en  su  poder 
hacerlo  un  programa  mediante  el  cual 
pueda  almacenar  un  dibujo  en  cinta  mag¬ 
nética  (cassett),  mi  ordenador  es  un  VIC- 
20  con  ampliación  de  16K. 

ALEX 

C/ARIBAU  97.  S«  3.‘ 

08036  BARCELONA 

En  uno  de  los  próximos  números  publica¬ 
remos  un  programa  de  utilidad  para  hacer 
copias  de  pantallas  en  la  impresora,  pero 
puede  que  no  ¡o  consigas  adaptar  al  progra¬ 
ma  de  dibujo  que  tienes,  ya  que  no  conozco 
tu  programa  ni  por  tanto  la  forma  de  hacerlo. 


LOS  SPRITES  DEL  VIC-20 


E 


Equipo  de  Commodore 
World,  yo  creo  que  para 
cualquier  poseedor  de  un 
VIC-20  también  seria  po¬ 
sitivo  conocer  el  sistema  tipo  "sprite”  del 
que  no  sólo  goza  el  C-64  sino  también  el 
mencionado  ordenador,  aunque  no  lo 
parece,  ya  que  en  ningún  libro  del  VIC  lo 
pone.  Por  eso  recurro  a  vosotros  y  en  caso 
de  ser  suficientemente  interesante  lo  alu¬ 
dido,  deberíais  publicar  en  algún  número 


ELECTROAFICION 

COMPUTER 

CJ  VILLARROEL,  104  -  00011  BARCELONA  -  TEL.  253  76  00  -  09 

PRODUCTOS  COMMODORE 

Commodore-64 

Disk  Dnve  1541 

Cassette  CN2 

Monitor  Color  1701 

Impresora  MPS-801 

Commodore  64SX  Portable 

VIC-20 

IMPRESORAS 

Seikosha 

Star 

Epson 

NewPrint 

C.  ltoh 

Riteman 

SINCLAIR 

Spcctrum  48K 

Impresora  Seikosha 
con  ¡nterfacc 

Mícrodrivc 

Teclado  DKTRONICS 

LAPIZ  óptico 

Amplificador  Sonido 

GAMA  COMPLETA  DE  ACCESORIOS 

Interfaces 

Sintetizadores  de  voz 

Cassettes 

Cintas 

Discos 

Base  de  Datos 

Easy  Script 

Monitores 

Interpod 

Cables 

Procesador  de  Textos 

Libros 

SOFTWARE 

Contabilidad 

Contabilidad  Doméstica 

Control  de  Stocks 

Mailing  y  Etiquetas 

Base  de  Datos 

Gran  variedad  de  Juegos 

Programas  Educativos 

ORDENADORES  DE  GESTION 

Amstrad 

Pal  Computer 

Commodore 

Apple 

de  vuestra  revista  un  articulo  sobre  dichos 
sprites,  por  ej.  cómo  se  definen,  constru¬ 
yen,  se  hacen  móviles,  etc. 

DANIEL  GARRIGA  -  BARCELONA 

Me  has  dejado  asombrado  con  la  afirma¬ 
ción  de  que  el  VIC  tiene  también  el  sistema 
de  Sprites.  Lamento  mucho  desconocer 
esto,  y  espero  que  cuando  consigas  más 
información,  me  pases  lo  que  tengas  para 
poder  publicarlo  y  que  todo  el  mundo  lo 
sepa.  Además  creo  que  la  dirección  de  la 
revista  le  dejaría  la  portada  a  una  noticia 
tan  sensacional... 

En  serio,  el  VIC-20  no  tiene  sprites,  esas 
cosas  permiten  detectar  colisiones  en  varios 
planos  superpuestos,  y  lamento  decirte  que 
en  el  VIC  no  sé  ningún  modo  de  igualarlo  si 
no  es  por  medio  de  complejos  programas  en 
código  máquina. 

Si  eres  un  buen  programador  podrás 
hacer  que  tus  juegos  simulen  los  sprites  uti¬ 
lizando  cuatro  o  más  caracteres  juntos, 
pero  te  va  a  resultar  bastante  complicado 
añadirte  las  detecciones  de  colisiones  y 
todo  lo  demás  sin  perder  velocidad  en  la 
ejecución  del  programa.  Quizás  te  sirva  de 
ayuda  el  darle  un  vistazo  al  programa 
“A  venturas  en  el  Desierto  ",  publicado  en  el 
número  4;  en  este  artículo  puedes  ver  cómo 
mover  juntos  varios  caracteres  para  dibujar 
el  jeep  y  el  helicóptero. 

LIMPIEZA  DE  CABEZAS 


E 


Para  limpiar  el  datas- 
sette,  qué  es  preferible 
algodón  y  alcohol  o  una 
cinta  limpiadora,  yo  les 
pregunto:  cualquier  cinta  limpiadora  o 
alguna  especial. 

Qué  cartuchos  de  ayuda  al  programa¬ 
dor  existen  para  el  VIC-20  a  excepción  del 
Superexpander  y  sus  precios. 

LUIS  JORGE  LOPEZ 

En  principio  es  indiferente,  pero  existen 
algunas  diferencias:  la  cinta  limpiadora  no 
deja  residuos,  y  el  algodón  impregnado  en 
alcohol  puede  dejarlos  pero  un  poco  de 
algodón  es  más  barato  que  una  cinta  lim¬ 
piadora,  si  tienes  cuidado  con  los  restos  de 
algodón  que  se  quedan  en  la  cabeza,  el 
resultado  es  similar  y  puedes  utilizar  los 
dos  métodos  indistintamente. 

Entre  los  cartuchos  de  ayuda  al  progra¬ 
mador  te  puedo  citar  sólo  el  que  tú  mencio¬ 
nas,  el  de  ayuda  a!  programador  y  el  vic- 
tree,  pero  los  precios  deberás  preguntarlos 
a  sus  distribuidores  respectivos  ya  que  no 
los  tengo  (Micro  Electrónica  y  Sakati). 


58/Commodore  World  Noviembre  1984 


El  Misterio 
de  los 
Pokes  (Vil) 


IN.r  Du-gu  KOMI  KO 


Tal  como  hicimos  en  el  número  ante¬ 
rior,  continuamos  en  este  mismo  número 
con  las  tablas  de  las  direcciones  de  llama¬ 
das  de  las  rutinas  del  intérprete  Basic  del 
Commodorc  64,  y  en  los  próximos  segui¬ 
remos  con  los  demás  mapas  de  memoria. 

En  este  mismo  número  hemos  publi¬ 


cado  un  articulo  como  complemento  a 
esta  sección,  para  todos  aquellos  que 
pedían  que  dedicásemos  artículos  a  los 
mapas  de  memoria  de  pantalla  del  VIC-20 
y  del  C-64,  se  trata  de  “Pokes  sin  dolor”. 
El  programa  que  aparece  en  ese  articulo 
puede  ser  de  gran  ayuda  a  todos  los  que 
les  gusta  utilizar  los  gráficos  ya  incorpo¬ 


rados  al  teclado  y  no  los  utilizan  por  no 
perder  el  tiempo  en  calcular  los  valores  de 
los  pokes  que  tendrían  que  hacer  en  el 
programa  para  conseguirlos.  Yo  mismo 
pienso  que  es  bastante  pesado  tener  que 
coger  el  manual  y  buscar  símbolo  por 
símbolo  todos  los  caracteres.  Espero  que 
sirva  de  ayuda  ese  programa. 


AEF7 

AEFF 

AF08 


IF28 
IFA 7  ; 


FE9 
016 
081 
088 
1  1  } 

194 

IA5 

182 


1 34C 
137  0 
1391  ; 
1 39 E  ; 


3E1 

3F4 

465 

475 

487 

4F4 

526 

5BD 


608 
6EC 
700 
7  2C 
737 
761 
77C 


Perlón  INEXTI 
Type  aatch  chtck 
Evalúate  oipremon 
Comtant  -  pi 
Evalúate  witnin  bracketa 

Chec k  r  ange 
Search  lor  variable 
Setup  FN  reference 
Perforo  | 0  R ) 

Perfora  | AND | 

Coapare 
Perfora  | 0 I M | 

Lócate  variable 
Chec  k  a  1 phabet  ic 
Créate  variable 
Array  pointer  lubrtine 
Valué  32768 
Float-fixed 

*  bad  aubac  r ipt  * 

*  i  1  1 ega 1  quan t 1 1  y* 
Compute  array  site 
Perfora  | FRE | 

Fi  x- i  1 oa t 
Perfora  [  POS  | 

Chec k  direct 
Perfora  |DEF| 

Cherk  fn  ayntax 
Perfora  |  FN  | 

Perfora  | STBS | 

Calcúlate  string  vector 
Set  up  string 
Make  rooa  for  string 
Carbage  collection 
Cneck  s a  1 v age ab i t 1 1 y 
tollect  string 
Conc  at  enat  e 

Build  string  to  aeaory 
Oiscard  unvanted  string 
Clean  descriptor  stack 
Perfora  | CHRS I 
Perfora  |LEFT$| 

Perfora  IRtCHTSl 
Perfora  | H I 0$ ) 

Pulí  string  paraaeters 
Pe  r  for»  l LEN ] 


8782  ; 
878  8; 
B  79  8  ; 
B7AD; 
B7EB; 
B  7  F  7  ; 
B80D ; 
8824  ; 
B82D; 
B849  ; 
8850; 
B853  ; 
886A; 


B97E; 
898  3 


8  A  2  8  ; 
BA  5  9  ; 
BA8C  ; 
8  A  8  7  ; 
BAD4  ; 


BAF9  ; 
BAFE  ; 
BB12  ; 
BBA2  ; 
BBC7  ; 
8BFC  ; 
BCOC; 
BC1B; 
BC2B; 
BC39; 
BC58  ; 
8C58; 
8C9B; 


BCF3; 
B07E  ; 
BDC2; 
80CD; 
BDDO; 
BF16; 
BF3A  ; 
BF7  1  ; 
BF7B  ; 
BFB4  ; 


i  C  itn ng-cnode 
Perfora  (ASC| 

Input  byte  paraater 
Perfora  |VAL| 

Paraaeters  for  P0XE/WA1T 

Float-fixed 

Perfora  |PEEK| 

Perfora  (POKEl 
Perfora  1 WA 1 T | 

Add  0.5 
Sub t  rae  t - f  roa 
Perfora  (subtractl 
Perfora  | add  | 

Coapleaent  FAC#1 
'overflev* 

Multiply  by  tero  byte 
Pe r  f ora  | LOC ) 

Perfora  | au 1 1 i p 1  y | 

Mult ipl y-a-b i t 
Meaory  to  FAC#2 
Adjust  F  AC# 1 / #2 
llnderflow/overflow 
Mult i pt  y  by  10 
‘7  in  f  loat  ing  pt 
Divide  by  10 
Perfora  (divide) 

Memory  to  FACfl 
FACFI  to  aeaory 
FAC#  2  to  FACF1 
FAC# 1  to  FAC#  2 
Round  F  AC# 1 
Cet  sign 
Perfora  ( SCN ) 

Perfora  |ABS| 

Coapare  FAC# I  to  mea 
Float-fixed 
Perfora  lint) 

String  to  FAC 
Cet  ascii  digit 
Print  “  I N  .  .  * 

Print  lint  nuaber 

Deciaal  constante 
TI  constante 
Perfora  | SQR | 

Perfora  | power | 

Perfora  Inegative) 
Perfora  |EXP| 

Series  eval  1 


E059 
E09  7 
EOf  9 
E  1  2  A 
E  1  56 
E  1 6  5 


£2  19 
E264 
E  2  6  8 
E2b4 
E30E 
E37B 
E  394 
E3A2 
E3BF 
E447 
E453 
E45F 
E  500 
E505 
E50A 
E  5  1  8 
E544 
E566 
E56C 
E5A0 
E5B4 
E632 
E684 
£691 
E6B6 
E6ED 
£70  1 
£716 
E87C 
E891 
E8A1 
E8B3 
E8CB 
E8DA 
E8EA 
E96  5 
E9C8 


ies  eval  2 

form  | RNÜ | 

breakpoints  77 

fora  | SYS | 

fora  ISAVEl 

fora  l VER  1 FY | 

fora  i  LO AD | 

fora  ¡OPENI 

fora  ( C  LOSE ) 

saetera  for  LOAtl/SAVE 

ck  default  paraaeters 

ck  for  comaa 

saetera  for  open/cloae 

fora  | COS | 

fora  |  S  1  N  | 

tora  ITANI 

fora  | ATN | 


1/0  addresa 

/get  rov/colunn 
lalize  I/O 
ir  aereen 

aereen  pointers 
1/0  defaulta 
it  {ron  Keybnard 
it  froa  «creen 

r  e  en  print 

reat  cursor 

into  previous  lit 


dec  r  eaent 
increnent 
code 
t  «b  l  e 

on  «creen 


Commodore  World  Noviembre  1984/59 


EFJ* 
EF4A 
FBDO 
F8E2  ; 
F92C 
FA60; 

F  b  8  £  ; 

F89  7  ¡ 


Set  re<d  timing 
Read  tape  bita 
Store  tape  chara 


Pokes 

sin 

dolor 

¿Te  hace  temblar  la  simple  idea  de  tener 
que  calcular  los  valores  de  los  Pokes  para 
los  caracteres  gráficos  personalizados? 
Pues,  no  sufras  más,  este  programa  facili¬ 
tará  y  acelerará  tu  trabajo. 

Si  alguna  vez  has  diseñado  una  pantalla 
utilizando  todos  los  gráficos  del  teclado 
de  tu  Commodorc,  seguramente  habrás 
pasado  muchas  horas  calculando  los 
valores  de  los  Pokes  y  las  posiciones  de 
cada  carácter.  El  uso  del  papel  y  lápiz 
ayuda  muy  poco  en  la  laboriosa  tarea  de 
calcular  estos  diseños.  Existe  otro  método 
en  que  el  ordenador,  y  no  tú,  realiza  la 
mayor  parte  del  trabajo. 


El  programa  “Ayuda  para  el  Diseño  de 
Caracteres  Gráficos’’  te  quita  el  peso  de 
tener  que  calcular  el  valor  de  cada  carác¬ 
ter  en  pantalla,  su  posición  en  la  memoria 
de  pantalla,  su  valor  en  color  y  su  posi¬ 
ción  en  la  memoria  de  color.  Este  pro¬ 
grama  resulta  útil  si  vas  a  crear  un  diseño 
en  pantalla  mediante  unos  Pokes  en  un 
programa  tuyo. 

Existen  dos  versiones  de  este  programa, 
uno  para  el  VIC-20  (con  o  sin  ampliación) 
y  uno  para  el  C-64.  Dado  que  son  prácti¬ 
camente  iguales,  haré  referencia  sola¬ 
mente  al  del  C-64.  pero  la  información 
presentada  aqui  puede  ser  aplicada 
igualmente  al  VIC-20,  a  no  ser  que  se 
indique  lo  contrario. 

Teclea  el  programa  y  salvarlo  antes  de 
ejecutarlo.  El  programa  hace  uso  de 
muchos  Pokes,  de  modo  que  si  te  equivo¬ 
cas  al  teclearlo,  lo  podrías  perder  al 
ejecutarlo. 

Para  usar  este  programa,  cárgalo  en  el 
ordenador,  pero  no  lo  ejecutes  en  seguida. 
Una  vez  cargado  el  programa,  borra  la 
pantalla  y  empieza  a  crear  tu  dibujo.  Pue¬ 
des  usar  cualquier  carácter  del  teclado 
(incluyendo  los  inversos).  La  única  limi¬ 
tación  es  que  la  primera  línea  tiene  que 
quedar  vacía. 


82E;  Check  lape  atatus 
818;  "presa  record.." 
841;  Initiate  tape  read 


r  8  6  4  ;  Initiate  tape  wnte 

r875;  Comaon  tape  code 


Cuando  termines  de  hacer  tu  dibujo, 
mueve  el  cursor  hasta  la  parte  superior  de 
la  pantalla,  teclea  RUN  y  pulsa  la  tecla 
Return.  Primero  aparecen  los  títulos,  y  a 
continuación  un  mensaje  que  te  pregun¬ 
tará  si  lo  quieres  volcar  en  pantalla  o  en 
impresora. 

Si  decides  volcarlo  en  pantalla,  necesi¬ 
tarás  un  joystick  (en  el  PORT  dos)  para  el 
desplazamiento  del  cursor,  que  debe  encon¬ 
trarse  ahora  en  el  centro  de  la  pantalla. 
También  aparecerán  cinco  números  en  la 
parte  superior  de  la  pantalla  (cuatro  en  el 
VIC-20).  Estos  son,  en  orden: 

— Posición  en  pantalla. 

—Valor  del  offset  (esto  no  está  presente 
en  el  VIC-20). 

— Código  del  carácter. 

— Posición  del  color. 

— Código  del  color. 

Los  números  representan  la  posición 
del  cursor  y  lo  que  se  encontraba  ante¬ 
riormente  en  ese  mismo  lugar.  La  posi¬ 
ción  de  la  pantalla  es  la  dirección  de 
memoria  donde  tendrías  que  introducir 
un  número  mediante  un  Poke  para  que  el 
carácter  representado  apareciera  en  la 
pantalla  en  el  mismo  lugar. 


60/Commodore  World  Noviembre  1984 


El  valor  OFFSET  es  el  número  de 
espacios  a  partir  del  principio  de  la  panta¬ 
lla  a  su  posición  actual. 

El  código  de  carácter  es  el  número  que 
representa  el  carácter  que  se  encontraba 
antes  en  la  posición  del  cursor. 

La  posición  de  color  es  la  posición  de 
memoria  que  contiene  el  valor  del  color 
de  dicho  punto  en  la  pantalla. 

Finalmente,  el  código  de  color  es  el 
color  de  la  posición  antes  de  la  llegada  del 
cursor. 

La  versión  para  el  VIC-20  funcionará 
con  o  sin  la  ampliación  de  memoria  y 
proporcionará  las  posiciones  de  memoria 
correctas  tanto  para  la  posición  en  panta¬ 
lla  como  la  posición  de  color,  según  la 
cantidad  de  memoria  empleada. 


Los  números  se  modifican  mediante  el 
desplazamiento  del  cursor.  Además,  las 
posiciones  quedan  restauradas  a  su 
estado  original  en  el  momento  en  que  el 
cursor  abandona  ese  punto. 

Si  tienes  un  ISIS,  un  1525  u  otra  impre¬ 
sora  con  el  interface  apropiado,  puedes 
disponer  de  una  copia  impresa  de  la 
información  en  pantalla. 

Cuando  el  programa  te  pregunta  el  tipo 
de  salida,  teclea  P  (printer)  y  prepárate  a 
descansar.  El  ordenador  te  dará  informa¬ 
ción  sobre  cada  posición  siempre  y 
cuando  no  contenga  un  espacio.  La  copia 
impresa  contendrá  toda  la  información 
presentada  en  pantalla,  además  del  valor 
de  color  del  fondo  y  borde  de  la  pantalla. 

Si  no  tienes  impresora,  no  hace  falta 


que  teclees  la  parte  del  código  dedicada  a 
la  impresora.  Por  lo  tanto,  elimina  las 
lineas  a  partir  de  1000.  además  de  las 
líneas  220-250. 

Usando  este  programa,  hago  el  trabajo 
de  una  o  dos  horas  en  media  hora.  El 
programa  me  permite  crear  mis  dibujos 
directamente  en  la  pantalla,  de  modo  que 
visualizo  mejor  mis  ideas  que  cuando  uti¬ 
lizaba  solamente  papel. 

Además,  con  este  programa  no  tienes 
que  consultar  libros  y  gráficos  para  obte¬ 
ner  los  mismos  resultados  que  antes. 
Cuando  acabas  tu  dibujo,  los  números 
que  se  necesitan  para  reproducir  el  diseño 
aparecen  inmediatamente.  Deja  que  tu 
ordenador  realice  las  tareas  pesadas 
mientras  tú  te  dedicas  a  la  creación. 


“Commodore  World” 

arte  de  venderse  generalmente  en  kioscos,  se  encuentra  asimismo 
la  venta  en  las  siguientes  distribuciones  de  Commodore  y  librerías. 


ALICANTE 

•  Casa  Wagner.  c/  Juan  Carlos  I,  37.  Elda. 
teléfono:  (965)  39  03  96. 

•  Ferretería  Progreso,  c/  General  Jordana,  28. 
Elda.  Teléfono:  (965)  38  1 1  45. 

BADAJOZ 

•  Control  Sistemas.  Avda.  Santa  Marina.  25A. 
Teléfono:  (924)  25  88  00. 

BARCELONA 

•  Comercial  Clapera.  c/  Mariano  Maspons,  4. 
Cranollers.  Teléfono  (93)  870  45  42. 

•  Computer  Service.  Avda.  Abad  Marcet,  325. 
Tarrasa.  Teléfono:  (93)  788  63  77. 

•  C'omputerhard  c/s.  Jaime,  48.  Granollers. 
Teléfono:  (93)  870  09  19. 

•  Gadesa.  Les  Valls,  12-14.  Sabadell. 
Teléfono:  (93)  725  25  43. 

•  Librería  Emilia  Pérez  Kadua.  c/  Mayor,  35. 
Castellar  del  Vallés.  Teléfono:  (93)  714  89  51. 

•  Librería  Michel.  Ronda  Guinardo,  1.  Sardañola. 

•  Mozart.  c/  Jaime  1,  145.  Mollet. 

Teléfono:  (93)  593  75  01. 

•  Novo  Digit.  c/  Aragón,  472.  Tel.  246  27  75. 

•  Sonimóvíl.  c/  Alcalde  Armengou,  53. 
Manresa.  Teléfono:  (93)  873  78  17. 

•  Tronic.  Bigay,  11-13.  Tel.:  (93)  212  85  96 

BILBAO 

•  Hilbomicro  SA.  c/  Aureliano  Valle,  7. 

48010  Bilbao.  Teléfono:  (94)  443  43  51 


CADIZ 

•  Video  Computer.  Comandante  Gómez 
Ortega.  59.  Algeciras.  Tel.:  (956)  65  39  02 

CANARIAS 

•  Reías.  Rambla  de  Pulido,  85.  Santa  Cruz  de 
Tenerife.  Teléfono:  (922)  28  37  05. 

CIUDAD  REAL 

•  Electrónica  Turríllo.  c/  Pedrera  Baja,  7 
Teléfono:  (926)  22  38  67. 

CORUÑA,  LA 

•  Cetronic,  S.L.  c/  Palomar,  22  Bajo. 
Teléfono:  (981)  27  26  54 

•  Photo  Copy.  c/  Teresa  Herrera,  9 
Teléfono:  (981)  21  34  21. 

•  Sanlusa,  S.  L.  San  Luis,  46  al  50. 

Teléfono:  (981)  23  07  49 

•  Gesty Computer.  Avda.  Romero  Donado,  25. 
Tel.:  (981)  59  87  54.  Santiago  de  Compostela. 

GERONA 

•  Digit  Informática,  c/  Avda.  11  Setembre.  7. 
Olot.  teléfono:  (972)  26  94  01. 

•  Microchip.  c/Aigua,  3.  Olot.  leí.:  26  36  63 

•  Regiscompte  S.A.  c/  Emilio  Grahit,  17  Bis. 
Teléfono:  (972)  21  99  88. 

HUELVA 

•  Computerlog,  S.A.  c/  Tendaleras,  15 
Teléfono:  (955)  25  81  99. 

IBIZA 

•  Kelson.  Plaza  España,  S/N.  San  Antonio 
Abad.  Teléfono:  (971)  34  13  09. 

LEON 

•  Logdata.  c/Burgo  Nuevo,  4 
Teléfono:  (987)  20  42  89 

•  MicroBierzo.  c/  Carlos  I,  2. 

Teléfono:  (987)  41  74  21.  (Ponferrada) 

MADRID 

•  Chips  f  Tips.  c/  Puerto  Rico,  21-23. 

•  Electrónica  Lugo,  c/  Barquillo,  40. 

•  Librería  García  Peña,  c/  Cavanilles,  52. 


•  Micromundo,  SA.  El  Zoco.  Majadahonda. 
teléfono:  (91)  638  13  89. 

•  País  de  los  Microordenadores.  Bravo 
Murillo,  18.  Tels.:  (91)  446  33  17-446  37  12. 

MALAGA 

•  Informática  Martínez  SA.  c/  Cristo  de  la 
Epidemia.  90.  teléfono:  (952)  26  15  60. 

MURCIA 

•  Procoinsa.  Ronda  Norte,  27. 

Teléfono:  (968)  23  94  49. 

PAMPLONA 

•  Microordenadores  Ramar.  c/  Navarro 
Villoslada,  7.  teléfono:  (948)  23  72  80 

SALAMANCA 

•  Info-Ges.  c/  Ronda  del  Corpus,  2-1*  centro. 
Teléfono:  (923)  21  59  93. 

SAN  SEBASTIAN 

•  Donmicro,  SA.  c/  Arrásate,  6. 

Teléfono:  (943)  42  35  10 

SANTANDER 

•  Librería  Hernández.  San  Francisco,  15. 
Teléfono:  (942)  22  53  30. 


SEVILLA 

•  Papelería  Mora,  c/  Santa  Cruz,  5.  Ecija 
Teléfono:  (954)  83  14  80. 

TARRAGONA 

•  Oficomplet.  Plaza  de  la  Cinta,  6.  Tortosa. 
teléfono:  (977)  44  14  50. 

•  Comercial  Informática  de  Tarragona  SA. 

c /  Gasómetro,  20.  Teléfono:  (977)  23  08  53. 

VALLADOLID 

•  Chips  +  Tips,  S.A.  c/  Juan  de  Juni,  3. 
Teléfono:  (983)  33  40  00. 

•  Kent  Electronic,  c/  Duque  de  la  Victoria,  13. 
Tienda,  15.  Teléfono  (983)  47  58  07 

ZARAGOZA 

•  ADA  Computer.  Centro  Independencia. 

P*  Independencia,  24-26.  leí.:  (976)  29  85  62. 


Commodore  World  Noviembre  1984/61 


62/Commodore  World  Noviembre 


B  ELECTRONICA 
SAN  DO  VAL  &  * 

DISTRIBUIDORES  DE 

ORIC-1 
CASIO  FP200 
ROCKWELL-AIM  65 
VIDEO  GENIE-EG-2000 
CASIO  FX-9000P 
SINCLAIR  SPECTRUM 
OSBORNE  1 
DRAGON  32 
NEW  BRAIN 
EPSON  HX-20 

C/SANDOVAL,  3.  4.  6  MADRID  28010 
TELEFONOS  445  18  33/18  70 
TELEX  47784  SAVL-E 


casa  de 
software  s.a. 


casa  de  software,  s.a. 

c/  aragón,  272,  8®,  6.a 
tel.  215  69  52 
08007  barcelona 


COMPUTERWORLD 


AVD.  CESAR  AUGUSTO,  72 
Tels.:  23  56  82  y  22  65  44 
50003— ZARAGOZA 


C/  Tusset,  8  -  Entresuelo  2.a 
Tel  :  218  02  93 
08006  BARCELONA 


es  miembro  de  CW  (  ommunicalions/lnc..  el 

grupo  editorial  más  grande  y  de  publica¬ 
ciones  relacionadas  con  los  ordenadores  en 
18  países,  dando  como  resultado  la  canti¬ 
dad  de  nueve  millones  de  lectoni  que  leen 
una  o  más  de  nuestras  publicaciones. 

¡¡¡Suscríbete!!! 

_ Tel.  (91)  231  23  88/95 


Hicro'Sisiemas 

Todos  los  meses 
publicaremos 
programas  para  los 
Commodore. 
¡¡Suscríbete!! 

Tel.  (91)  231  23  88/95 


Este  módulo 
de  4  cm. 
vale  55.000  Ptas. 
por  11  inserciones. 
Llamarnos  al  231  23  88/95 


;Oue  no  sabes 

como  suscribirte 

Tlllj  a 

\  '  Commodore 

\  World? 

\  ¡¡¡Pues  venga. 

jm 

llámanos!!! 

^  (91)  2312388/95 

S>  (93)  2127345 

•  Ordenadores  personales  Hard  y  Soft. 
•  Cursos  de  Basic. 

Oficina,  RENOVACION  EN  MARCHA.  SA 

C  Espiónesela.  34  J*nl  .  MADRID- 3 
Telefono  (ti)  441  24  78 


CENTRO  DE 
INFORMATICA 

Las  Rozas  -  Majadahonda 
EMPEZAMOS 
Cursillos  en  BASIC 
cada  15  días 
Directamente  en  ordenadores 
ViC-20.  COMMODORE  64 
SPECTRAVIDEO 
Teléfono;  637  31  51 


commodore  64 

¿Quiére  ahorrar 
95.000  ptas.? 


Nuestro  cartucho  I-  ASM  URBO-MICNli, 
transformará  su  Datasettc  en  un  lector  de 
programas  un  10%  más  rápido  que  la  uni- 


1.  CHOPLIKI KK 

2.  MONOPOI.1 

3.  SIIPERBASK 

4.  Bl  s|(  \|  ( 


p 

p 

p 

cf> 

¿y 

I 


o—.  ~  ^ 

cu.mHo  a.  wp1 

Maquino  -vn  J 

1  - - —  I  i*  fuerza  a  ir  a 


5 

g 

W 
W 
W 

py 

¿y 

| 

í. 


vw-w 

CPU's.  los  "todos  . 

namicnios chucua»  )a  hora  de 

de  instrucciones.  en  esic 

programa  des  _uh\¡cado  en  el 
"aclarar  que  h*  con  el 

número  2  d  pERisCOPfc 
nombre  de  además  un 

l-.ste  programa  lenguaje 

pequeño  m°"l‘°gn  BASIC,  que 
máquina  eser  t  )s  htfxa- 

P^e'feí “a  memoria  poí 
decimales  en  >  ..2H.orreCCion 
medio  de  Ja  pe  lcmdo  de  la 

código  nraqmna  oniu,r. 

no  dispongá  de  °t  cido  en 

C°m°  lilió  bastante  borroso. 

rador  de  oW.  era  a  varias 

Podéis  ver  que  dc  nUestros 

rutinas  del  Kern  ere). 

ordenadores  (FFBA.r  Jc 

QUÍCndStfdoi  puede 

referencia  del  P  |  de  esle  pro¬ 
ver  que  la  T.ar  ci  contenido  de- 
grama  es  cambia  $0327.que 

'ilSP°S,Cndnen  e?  vector  de  salida 

corresponden  el  Abemos 

de  mensajes  por  coRU  y 

pulsar  las  *eC‘"  relSYS28*256 

pLAYantesdeha  Despues 

del  programa  ori6nid0  de  eslas 
de  alterar  ba  cn  la  cinta 

dos  posiciones^  no  es  otro 

tFS&¡¡£sr¿srs 


,  ®  otro  programa 

en  el  listado  -,  esos  dos 

La  8r“^C'er  si  miráis  la  guia 
bytes.  podéis  reaU/a  con 

de  referencia,  se  Hainar  a 

dirección  «cun^«o»nunocnc, 

la  rutina  SU  L  hace  que  el 

registrotndiec^Y.  forzosa- 

programa  OLu  originales 

Prentcenlas posición^  ei  deta- 

al  haceffh?»  eíauto-run.  ya  que 
lie  que  fuerzi  de  la  carga  el 
cuando  al  '"  a  car  en  pantalla 
ordenador  «  «  a“  cnviar 

íÍRCn«  encuenda  con  el  vector 


,  ..  „r7a  a  ir  a  la  rutina  que 
SÍ??-  nombre  del  p- 

"“-■“ssíí 

bre  del  progra  líneas,  que 

zar  los  foVbytes  déla 

son  los  dos  p  no  aparecen 

linea  loeultos  y  q  e  apimian  al 
a,  hacer  US  )  9 i  por  la 

primer  byte  {  programa 

^^Staqueencuentm 

los  tres  bytes  que  son^i  ^  pro. 

indican  quc  modifican  los  vcc- 
grama,  ¿e\  programa,  que 

lores  del 1,na  (as  posiciones 

ZSSS&í&St 

5-ASSAAc 

.  ,do  el  secreto  dci 
comando  OLL>  y 

para  que  ejecute  ot  -iclonCs 

süsSS-^ 

tengáis 

gramas,  cambien 


etc... 


la  R  se  encueiu*» 

rENEBADOn  CE  0LD 

<joto2B 
■or  ,r. 

d<  :!U'h.'»r«°rí  »■ 

int'pr*** ,  6g 


,  28:p°u,55,‘ 

10  p 
20 

30  poWe*<1»c 


66/Commodore  World  Noviembre  19K4 


Commodore  World  Noviembre  1984/67 


68/Com  modore  World  Noviembre  1984 


£  i* 

W 

W 

w 

c? 

I 

í. 

i 

I? 

w 

W 

W 

<? 

| 

é 


EXCURSION  POR  *-A 


m,croprogramacioh 


DESENAMBLADO  DE  <-A  R 

'  ,  0351  a6  2b 
,  0353  a4  2c 
0355  86  4. 

0357  84  4  4  * 

‘  ’  0359  a0  04 

,  035b  bl  *e  t 

.  ,  035d  +0  03 

. ,  ®35*  c8  0  i 

’  0360  *0  49 

.  ,  0362  C8 

'  0363  98 

0364  00 

. ,  0366  18 
.  0367  65 

0369  91  4e 

036b  c8 
‘  ’  036c  aV  00 

•’  036.  65  ♦♦ 

0370  91  4e 

‘ '  0372  *0  00 

’  0374  bl  4e 
0376  40  1» 

03^8  c8  . 

. ,  0379  bl  *e 
. ,  037b  40  19 

0374  »9  -02 

0374  I0 
0330  65  4* 

' 0382  85  24 

, ,  0384  85  24 

0386  85  31 

.  0388  *9  00 

’  038a  65  4  4 

038c  85  2. 

038e  85  30 


,  OLD  UBICADA  EN  1 


ele 

ade  *+e 

ata  l*<e) • 


enlace  « 

r,  d.  prograi 


ade  »+e 

fita  *2d  «4! 

,t-  *24  »v 


0392  20  8a  tv  J- 

0395  60 

0396  a0  00 
0398  bl  *•  ta 
039a  aa  in 

039b  c8 
039c  bl 

039.  85  44  * 

03a0  86  4  e  • 

03a2  38  l 

03a3  b0  cd  b 

,  03a5  ♦  +  ? 

03a6  *♦ 

,  03a7  ** 

03a8  ** 

.  03.9  20  20  20 


Commodore  World  Noviembre  1984/69 


Video 

Casino 

Perdido 
entre 
las  nubes 

Cabe  GARGIULO  (RUN  EEUU) 

Traducido  por  Valerte  SHANKS  y  adaptado  por  Alvaro  IBAÑEZ 


Tú  eres  el  piloto  de  un  pequeño 
avión  de  hélice,  y  si  no 
se  te  nubla  la  vista,  puedes 
aprender  bastante  sobre 
la  animación  en 
pantalla. 


¿Te  apetece  aprender,  con  la  ayuda  de  tu  VIC-20  ó  C-64, 
cómo  se  produce  la  animación  en  pantalla  para  los  juegos 
profesionales?  El  juego  “Perdido  entre  las  Nubes”  hace  buen 
uso  del  juego  de  caracteres  incorporado  en  los  equipos 
Commodore  para  producir  imágenes  que  se  parecen  a  un 
monoplano,  visto  desde  arriba.  De  acuerdo  con  la  dirección 
en  que  se  dirige,  el  avión  apuntará  hacia  el  Norte,  el  Sur,  el 
Este  o  el  Oeste. 

Para  jugar,  necesitas  un  joystick  para  desplazar  el  avión  por 
la  pantalla,  esquivando  las  nubes  que  no  te  dejan  ver.  Si 
tocas  solamente  una  nube,  el  juego  terminará.  El  juego 
consiste  en  seguir  volando  el  máximo  tiempo  posible  para 
poder  superar  la  última  puntuación. 

Las  nubes  están  apareciendo  en  pantalla  constantemente  y  al 
azar.  Cuanto  más  tiempo  te  quedes  en  el  aire,  más  te  costará 
no  tropezar  con  las  nubes.  Tarde  o  temprano,  toda  la 
pantalla  se  llenará  de  nubes.  Pero,  para  entonces,  habrás 
chocado  y  el  juego  habrá  terminado. 


Más  allá  da  las  nabas 

El  avión  puede  salir  por  un  lateral  de  la  pantalla  y  aparecer 
por  el  otro.  Sin  embargo,  no  puede  hacer  esto  por  la  parte 
superior  ni  la  inferior.  Si  llegas  a  tocar  esos  extremos,  tu 
avión  chocará  contra  un  muro  invisible.  Esta  característica 
fue  añadida  para  que  el  juego  resultara  más  interesante.  Si 
prefieres,  puedes  modificar  el  programa  para  que  el  avión 
entre  y  salga  también  por  las  partes  superior  e  inferior. 


VIC-20  NO  AMPLIADO  -  C-64 


.70/Commodore  World  Noviembre  1984. 


(Luego  te  explicará  cómo  se  hace.) 

A  medida  que  avanza  el  juego,  se  aumenta  la  velocidad.  Al 
principio,  un  bucle  de  retraso,  se  repite  de  1  a  200  entre  cada 
jugada.  Es  decir,  que  el  ordenador  cuenta  de  1  a  DLAY  antes 
de  pasar  a  la  siguiente  jugada.  Sin  embargo,  la  variable 
DLAY  se  decrementa  cada  vez,  de  modo  que  hacia  el  final  el 
bucle  hace  poca  cosa.  El  ordenador  tiene  que  contar  de  1 
hasta  1,  y  esto,  lógicamente,  no  le  ocupa  mucho  tiempo. 

El  avión  empieza  a  volar  por  el  lateral  izquierdo  de  la 
pantalla  a  un  nivel  elegido  al  azar.  Se  elige  este  nivel,  F,  en  la 
linca  320  (la  260  en  el  listado  para  el  Vic-20).  Se  llega  a  la 
posición  inicial  del  avión,  Bl,  multiplicando  F  por  40  (ó  22 
en  el  caso  del  VIC-20)  y  añadiendo  CHAR,  el  principio  de  la 
memoria  de  caracteres  (diferente  para  los  dos  ordenadores 
pero  correctamente  definido  en  cada  programa).  Este 
número,  F.  se  utiliza  como  el  nivel  elegido  al  azar  donde  el 
avión  inicia  su  vuelo. 

El  avión  empieza  a  volar  en  la  linea  380  (la  320  en  el  listado 
para  el  VIC-20).  Primero,  se  elige  una  posición  al  azar  (I) 
para  cada  nube  nueva,  y  una  pelotita  blanca,  introducida 
mediante  un  Poke,  aparece  en  la  pantalla.  A  continuación  el 
bucle  de  retraso  empieza  a  funcionar,  y  se  va  reduciendo  el 
tiempo  de  retraso. 


Control  dol  movimiento 

Merece  la  pena  hablar  un  poco  sobre  el  movimiento  del 
avión.  Hemos  visto  cómo  se  desplaza  un  objeto  por  la 
pantalla  en  programas,  cómo  “Dibujar”  por  ejemplo, 
publicados  en  Video  Casino.  Para  que  un  objeto  se  esté 
moviendo  continuamente,  siempre  se  añade  una  variable. 
Delta,  a  Bl.  Si  no  se  detecta  ningún  movimiento  del  joystick. 
Delta  siempre  se  queda  igual,  y  el  movimiento  continúa  en  la 
misma  dirección.  Delta  asume  otro  valor  solamente  cuando 
se  toca  el  joystick. 

En  este  juego  cada  nuevo  valor  para  Delta  también  produce 
un  cambio  en  el  carácter  del  cursor.  Cuando  el  avión  empieza 
a  volar,  se  dirige  de  izquierda  a  derecha,  y  el  cursor  tiene  un 
valor  de  107.  Este  carácter,  una  T  tumbada  apuntando  hacia 
la  derecha,  se  parece  a  un  avión  visto  desde  arriba,  volando 
de  izquierda  a  derecha. 

Cuando  Delta  se  convierte  en  -40  ó  -22,  lo  que  quiere  decir 
que  el  avión  sube,  la  variable  Plañe  es  igual  a  113,  y  se 
parece  a  una  T  al  revés.  Cuando  se  dirige  hacia  abajo  el 
avión  tiene  la  forma  de  una  T  normal,  mientras  que  se  parece 
a  una  T  tumbada  apuntando  hacia  la  izquierca  cuando  va 
volando  de  derecha  a  izquierda. 

Esta  es  la  base  que  utilizan  los  programadores  profesionales 
para  representar  el  movimiento  en  la  pantalla,  aunque 
también  pueden  existir  varios  caracteres  para  el 
desplazamiento  en  direcciones  que  no  sean  solamente  Norte, 
Sur,  Este  y  Oeste.  Además,  habrá  más  de  uno  para  cada 
dirección  para  producir  la  sensación  de  un  movimiento  suave. 
Sin  embargo,  para  este  juego  nos  basta  con  cuatro. 

En  la  línea  560  (la  500  en  el  listado  para  el  VIC-20),  el 
programa  comprueba  si  el  avión  ha  chocado  con  una  nube. 
Hace  un  Peek  para  saber  la  siguiente  posición  del  avión,  Bl, 
y  si  ésta  no  es  32  sabe  que  el  avión  ha  chocado.  Si  no  ha 
habido  ningún  tipo  de  accidente,  se  hace  un  Poke  con  el 
avión,  y  la  posición  anterior  Bl -Delta  queda  sustituida  por 
un  espacio  (32). 

Un  choque  produce  los  efectos  necesarios  visuales  y  de 
sonido,  y  se  hace  una  comparación  entre  el  momento  de 
arranque,  BEGN,  y  el  momento  del  choque.  La  diferencia 
entre  estas  dos  variables  se  mide  en  “jiffies”,  o  intervalos  de 
1/60  de  segundo,  y  el  tiempo  transcurrido  aparece  en 
pantalla.  Si  tu  juego  ha  durado  más  que  el  tiempo  indicado 
en  la  última  puntuación  ganadora,  HS,  ésta  se  vuelve  a  fijar, 
se  anuncia  un  nuevo  récord  y  te  permite  seguir  jugando. 

“Enróllate” 

Te  dije  que  te  iba  a  dar  algunas  ideas  sobre  la  forma  que 
tiene  la  pantalla  de  “enrollarse”  sobre  si  misma.  Ambos 


programas  contienen  lineas  que  no  permiten  que  el  avión 
pase  más  allá  de  E,  el  limite  final  de  la  memoria  de  vídeo,  o 
de  B,  el  principio  de  esta.  En  el  listado  para  el  C-64,  por 
ejemplo,  verás  que  las  líneas  500  y  530  comprueban  este  dato. 
Si  quieres  modificar  el  programa  para  que  el  avión 
desaparezca  por  la  parte  superior  de  la  pantalla  y  vuelva  a 
aparecer  por  la  parte  inferior  o  viceversa,  tienes  que 
convertir  Bl  en  Bl-((el  número  de  filas  utilizadas  en  la 
pantalla)*  (el  número  de  caracteres  en  una  fila  -22  ó  40)) 
siempre  que  Bl  sea  mayor  que  E.  Si  el  avión  se  está 
desplazando  hacia  arriba,  Bl  se  tiene  que  convertir  en 
Bl+((el  número  de  filas  utilizadas  en  la  pantalla)*  (22  ó  40)) 
para  que  el  avión  aparezca  por  la  parte  inferior  de  la  pantalla 
siempre  que  Bl  sea  menor  que  B. 

Tú  mismo  puedes  contar  el  número  de  filas  utilizadas  en  este 
juego,  y  localizar  los  sitios  donde  tienes  que  hacer  la 
modificación.  No  te  lo  voy  a  decir  todo;  algo  tienes  que  hacer 
tú  solito. 


VIC-20  NO  AMPLIADO 

10  REM  4*4.*4*444.**4* 

20  K'El'l  4  4 

ju  REM  *  HVlñliOR  * 

4Li  REI1  *  * 

50  REM  *♦*.*.♦♦*.♦**#** 

60  PkINl "CCLRJ" 

70  Pk I N I THB  •,  4  /"  [  2CR6PD3  tRVSON JlRELlH SPC 3 
«V I HDÜR [ SPC  3CBLUJC ¿CkSRU 3 " 

O0  PRINTl  MB'  ¿V'USHCSPOELCSPCJJOVSTI 
CKM 

90  PR INTTHBtt.' "PftkH t SPL JE V 1 1  Hk l SPC3C 
HQCftR" 

1  L'O  PR  I NTTÑB  (  2  >  "  CÜN  t  SPC  JLÑS  L  SPCJNUBL 
81SPC3Y" 

110  PRINTTfiB.23"  ühNHC  SPC  J  FUNTÜ3  “ 

120  PRINTTHB'.¿V'PüklSPL  JCHbHCSPC JSEG 
UNDOCSPC ) QUE " 

ISO  PK I NT " [ 3SPC 3 HGUHNTES I I" 

140  PR I NT “ C  CC RSRD 3 1 3SPC 3  C  RVSÚN  3PULSÑ 
C  SPC  3  UNH  C  ¿PC  J 1 ELLÑ “ 

15U  GETHS  ll-M.l="  "1HEN150 
160  PÜRE36879,  234 
170  PR1NT"ÍCLR3 " 

160  PLHNE*107 

1 90  CSCkEEN=3  78«fcH-4*  <  PEEK  t  Sotíbó.MiNli  1 

20) 

2uu  CHrik-4*'  E'bti  <36866>flNM28>+64*<P 

EEK(3btíb9  >ÑND120J  B=CHRÍ;  E*CHHR+484 

210  1iF-l  SC  REEI  I-CHhR 

220  flll=37154 

230  Ph=37137 

240  PB=37152 

250  DELTH-1 

260  F-INT'  k'NDC  1  3*21 3 

270  DLfiY=20O 

260  B 1  =  (  CHhR+F*22  3-1 

290  BEGN=T1 

300  GG3UB560 

310  0USUB840 

320  I=INT<RND< 13*4843 

330  PükECHhk-*  1  í  81 

340  PükECMHR+I+BF, 1 

350  FükJ *  1 T UllELHV  •  NEXT J 

360  LLHY-llLHV-o 

370  I F S0O- 1001 Ü400 

360  ULLTh=-22 -PLAÑE" 113- IFB1+BELTh<B 

THENKELTrt=0 

390  GÚT049O 

400  IFS1O1GÚT0430 

410  DELTH-22 : PLHNE-1 14  IFB1+DELTB>ET 

HENBELTh^O 

46Ó  GOTO490 

430  1FS2O-1G0TÜ460 

440  BELrrt=-l  PLFtNE*115'  IFBl+DELrFKBT 

HENDELThl-0 


-Commodore  World  Noviembre  1984/71 J 


450  GÜTO490 

4t0  IFS301  GÚT049O 

470  DELTA* 1  PLANE*107;  IFB1+DELTA>ETH 

EHDELTA-0 

4tíü  GÜTÜ490 

490  B1-B1+BELTA 

500  IFPEEKCBl > O32GOTG650 

510  P0KEB1, PLAÑE 

520  PÜkEB 1+DF,0 

530  PÜkEB 1 -DELTA, 32 

540  PÜhEBl+DF-DELTA,2 

550  GÜ7Ú3Ü0 

560  PÜKEDD»  127 

570  S3=--.CPEEK<PB>AND128;=0> 

560  PÜKEDD,  255 
590  P*PEEkkPÁv 
600  S1*-<<PAND8>=0> 

610  S2-<  (PAND 1 6 ) =0) 

620  SÜ*v'.PAND4>s0> 

630  FR*-<<PAND32>*0) 

640  RETURN 
650  FGRN*1TÜ50 
660  PÜKE36877 , ¿00 
670  POKEB1 +DF -DELTA, 0 
660  PÜKEBl+DF-DELTA, 1 
690  PÜkLB 1 +DF -DELTA , 2 
700  PÜkE3o877,Ü 
710  NEXTN 
720  PR1NT"CCLR3" 

730  FSH-Ti 

740  ET“ <  FSH-BEGN  ) /60 

750  ET-INTCET*10O>71U0 

760  PRINT I HB<4,> , " C k'VSÜN 3  [ RED 3 T I EMPO ■ 

C2CRSRD3 “ 

770  PR1NTET,  "[ SPC 3 [RVSÚN 3 SEGUNDOS" 

786  1 FHSa 17 HENPR I  NT  "  [  ¿LRSRD ] C  SPC 3NU 

EVÜISPC3RECÚRD ! 1 "  HS*ET 

790  FÜRN=1TÜ10Ó0 

800  NEXTN 

810  PRINT "CCLR 3" 

820  PLAÑE- 107 
830  GÚTÚ250 
840  PGKE36878, 15 
850  PÜKE368?4,2'O0 
860  PÜLE36874, 0 
870  k'ETURH 


C-64 

10  REA  é***6******** 

20  REA  *  * 

30  REM  *  AVIADOR  * 

40  REM  *  * 

50  REA  ************* 

60  FÚRN*1TÜ10 
70  READB 
80  JV<N)=B 
90  NEXTN 
100  P0KE53281 , 1 
110  VOLUME *54296 
120  VCE-54273 
130  PRINT" CCLR3" 

1 40  PR I N  T  T AB  < 1 2  > " C  2CRSRD  3  C  R VSON  3  C  RED  3 
[  SPC  ]  A  V 1  ADOR  C  SPC  3  C  BLU  3 [ 2CRSRD  3 “ 

150  PR I NTTAB ( 9  > " USA [  SPC  ]  TU  í  SPC  ]  JOVST 
ICK" 

160  PR I NT  T AB  <  9 ) " PAR A [ SPC  3 VOLAR  C  SPC  3  E 
VITANDO" 

170  PR I NTT AB  <  9 ) " LHS  C  SPC  3 NUBES , C  SPC I V 
[SPC 3 CONSIGUE" 

180  PRINTTAB<9)"PUNTOSCSPC3PÚR[SPC3C 
ADA" 

130  PR  I  NT  T  AB  9  )  "  SEGUNDO  l  SPC  3 QUE " 

200  PRINTTABC 9) "RESISTAS! ! " 

2 1 0  PR I NT  T AB  U 1 > " 1 2CRSRD  3  L  R VSÜN  3 PULS 
A  C  SPC  3  UNA  C  SPC  3  TECLA " 


220  GETAí- IFAí=" "GOTO220 

230  P0KE53281 » 15 

240  DATA-40, 40, 0,-1, 0,0,0, 1,0,0 

250  PRINT "CCLR 3" 

260  PLAÑE* 107 

270  CSCREEN^55296 

2bü  CHAR* 1 024  B=CHAR  E=CHAR+484 

230  B-CHAR  E=CHHR+939 

300  DF=CSCREEN-CHAR 

310  DELTA* 1 

320  F*INT tRND< 1 )*21 ) 

360  DLAV*200 

340  B1-<CHÁR+F»40>-1 

350  BEGN=T1 

360  GOSUB620 

370  GOSUB900 

360  I-1NT <RND< 1 >*999) 

390  PÜKECHAR+ 1,81 
400  PÜKECHAR+I+DF, 1 
410  FGRJ*1T0DELAV:NEXTJ 
420  DLRV-DLAV-6 
430  IFDELTAO-40GÜ3Ü460 
440  PLAÑE* 1 13  IFBl+DELTACBTHENDELTA- 
0 

450  GOTO550 

460  IFDELTAO46GÜTO490 

470  PLAÑE- 1 14 : IKB1+DELTA7ETHENDELTR* 

0 

486  GOTO550 

490  I FDELT AO- 1 GÜTÜ520 
500  PLAÑE* 1 1 5  I FB 1 +DELTRCBTHENDELTR* 
0 

510  GÚTO550 

520  I F  DEL  T AO  1 GOT 0550 

530  PLANE-107  IFB1+DELTA9ETHENDELTA* 

0 

540  GOTO550 

550  B1=B1+DELTA 

560  IFPEEKCBl  >O32GOTO690 

570  P0KEB1, PLAÑE 

58U  PÜKEB1+DF , 0 

580  PÜkEB 1 -DELTA, 32 

600  PÜKEBl+DF-DELTA, 2 

618  GÜTO360 

620  JV-PEEKC 56320) 

630  FR-JVAND16 
640  JV-15-C JVAND15) 

650  TA-JVCJV) 

660  IFTA-0THENRETURN 
670  DELTA-TA 
600  RETURN 
690  FÜRN=1TÜ50 
700  POKEVCE , 1 5 
710  PÜKEVOLUME, 15 
720  PÜKEBl+DF-DELTA, 0 
730  P0KEB1+DF-DELTH,  1 
740  PÜKEBl+DF-DELTA, 2 
750  POKEVCE, 0 
760  PÜKEVOLUNE, 0 
770  NEXTN 
760  PRINT" CCLR 3" 

790  FSH=TI 

800  ET-CFSH-BEGN7/60 

810  ET-INTCET*10Ü)/100 

820  PR INTTABÍ 1 0) i " C RVSON  3  C  RED  3  T I EMPO 

■ C2CRSRD3" 

830  F'R  I  NT  T AB  <  8 ;  E  T ;  "  [  SPC  3  [  RVSÚN  3  SEGUN 
DOS" 

840  I FHS<ETTHENPR  I NT  TAB <- 6 )  "  [ 2CRSRD3N 

UEVOC SPC 3 RECORD  I! " ■ AS-ET 

850  FORN-1TO1000 

860  NEXTN 

870  PRINT" [CLR3" 

880  PLAÑE- 107 
890  GOTO310 
900  PÚkEVÜLUME, 15 
910  POKEVCE, 32 
920  POKEVOLUME, 0 
930  RETURN 


Servicio  gratuito  para  nuestros  lectores  particulares. 

De  no  especificar  duración,  los  anuncios  serán  publicados  durante  1  mes. 

Debido  a  ciertos  abusos  que  nos  han  sido  comunicados,  los  anuncios  gratuitos  de  Market  club 
solamente  serán  publicados  si  vienen  con  nombre,  apellidos  y  dirección  completa.  No  se  admitirán  apartados  postales. 
Lamentamos  que  todos  tengan  que  sufrir  esta  medida  por  culpa  de  algunos  "listos" 

Adicionalmente  es  recomendable  que  enviéis  el  número  de  teléfono  por  si  hubiese  alguna  pega, 
si  no  deseáis  que  lo  publiquemos  podéis  decirlo  en  la  carta. 


BOLSA  I 
DETRABAJO  / 


•  Profesor  de  inglés,  trabajando  en  un  instituto  y 
licenciado  en  Historia,  darla  clases  particulares  de 
inglés.  Dirigirse  a:  Michacl  Bruggeman.  Teléf.:  (91) 
2271143.  (Ref.  BD-1). 


Multiplicación 
larga  en  Basic 

(Viene  de  pág.  29) 


8H32M96I9J2J694 
X  32332119T3 


y  A  para  el  producto.  El  listado  permite 
que  la  entrada  de  dos  números  tenga  una 
longitud  de  hasta  70  dígitos,  con  el  resul¬ 
tado  de  que  la  respuesta  nunca  tendrá  una 
longitud  de  más  de  140  espacios. 

Al  considerar  la  entrada,  hay  que  tener 
en  cuenta  varios  casos  especiales:  uno  o 
ambos  números  pueden  ser  negativos, 
uno  o  ambos  números  pueden  ser  cero  y 
un  número,  por  descuido,  puede  contener 
un  carácter  no  numérico. 

En  seguida  que  se  introduce  un 
número,  el  programa  comprueba  para  ver 
si  dicho  número  es  negativo.  Si  lo  es,  se  le 
quita  el  signo  de  menos  y  la  variable  FL 
se  incrementa  por  1 .  Al  acercarse  al  final 
del  proceso,  en  la  línea  540,  si  FL  es  1  (es 
decir,  si  solamente  uno  de  los  dos  núme¬ 
ros  de  entrada  es  negativo),  un  signo  de 
menos  se  añade  a  la  respuesta. 

A  continuación,  se  comprueba  para  ver 
si  cada  espacio  es  un  dígito  y  no  otro  tipo 
de  carácter.  Si  se  encuentra  otro  carácter, 
el  programa  da  un  mensaje  de  BAD 
INPUT  (ENTRADA  INCORRECTA),  y 
termina.  De  no  ser  asi,  el  programa  utiliza 
la  función  MID$  para  dividir  la  cadena  en 
carácter  de  dígitos  individuales,  realiza  la 
función  VAL  para  convertir  los  caracte¬ 
res  en  números  que  pueden  ser  manipula- 
74/Commodore  World  Noviembre  1984 


dos  de  forma  matemática  y  los  almacena 
en  los  “arrays”  M 1  y  M2. 

Hay  que  realizar  una  prueba  adicional 
antes  de  introducir  el  bucle  principal  del 
programa,  en  la  linea  217,  comprueba 
para  ver  si  una  o  las  dos  entradas  es  un 
cero.  De  ser  asi,  se  salta  por  encima  del 
bucle  principal  y  la  respuesta,  cero,  se 
representa  directamente. 

Mediante  el  uso  de  los  bucles  For... 
Next  en  las  líneas  310-370,  los  "arrays” 
se  procesan  como  si  los  números  que 
representan  se  multiplicasen  en  papel,  con 
el  multiplicando  (el  número  superior) 
encima  del  multiplicador  (el  número  infe¬ 
rior).  El  número  superior  se  multiplica  de 
forma  secuencial,  desde  las  unidades 
situadas  a  la  izquierda,  por  las  unidades, 
decenas,  cientos,  etc.,  situadas  como  el 
número  inferior.  Si  el  resultado  de  cual¬ 
quier  multiplicación  es  10  ó  más,  el  lugar 
de  las  decenas  se  lleva  al  siguiente  lugar 
hacia  arriba  de  la  respuesta. 

Si  estuvieras  realizando  una  multiplica¬ 
ción  a  mano,  una  vez  multiplicado  el 
número  superior  por  el  que  se  encuentra 
en  la  extrema  izquierda  del  número  infe¬ 
rior,  tendríais  que  sumar  los  resultados  de 
cada  secuencia  de  multiplicaciones;  pero 
el  programa  va  sumando  a  medida  que 
avanza.  Ahora  hay  que  sacar  el  resultado. 

Se  presentan  dos  problemas  para  sacar 
el  resultado.  Primero,  seria  interesante 
poder  evitar  los  ceros  de  entrada  (es  decir, 
dos  por  dos  debe  dar  4  y  no  139  ceros 
seguidos  de  un  4).  Segundo,  formaremos 
una  cadena  (concatenar)  con  nuestra  res¬ 
puesta  a  partir  de  los  elementos  indivi¬ 
duales  del  “array"  A,  donde  cada  ele¬ 


mento  es  un  número  real  de  0  a  9.  La 
conversión  de  un  número  real  de  x-lugar 
en  una  cadena  resulta  en  una  cadena  con 
una  longitud  de  lugares  de  x+1;  el  carác¬ 
ter  de  entrada  es  un  carácter  en  blanco 
(que  significa  un  signo  de  más)  o  un  signo 
de  menos.  Las  líneas  510  y  520  se  encar¬ 
gan  de  estos  problemas. 

El  programa  realiza  la  función  que  le 
fue  asignada.  Los  números  moderada¬ 
mente  cortos  (de  5-7  dígitos)  se  multipli¬ 
can  relativamente  rápido.  Sin  embargo, 
cuanto  más  largos  los  factores,  más  tarda 
el  programa  en  ejecutarse.  Cuando  eje¬ 
cute  el  programa  para  multiplicar  dos 
números  de  70  dígitos  (el  caso  más 
extremo),  el  ordenador  tardó  más  de 
veinte  minutos  en  sacar  el  resultado.  Una 
muestra  se  presenta  en  la  Figura  1. 

The  VIC-20  takes  20  minutes  to  mul- 
tiply  two  70-digit  numbers  with  this  pro- 
gram.  About  how  long  would  it  take  you 
to  do  it  by  hand? 

=  Los  equipos  Commodore  tardan 
viente  minutos  en  multiplicar  dos  núme¬ 
ros  de  70  dígitos  con  este  programa. 
¿Cuánto  tardarías  tú  en  hacerlo  a  mano? 
PRIMER  NUMERO?  123456789 
SEGUNDO  NUMERO?  111111111 
EL  PRODUCTO  ES  1371742098628257 
PRIMER  NUMERO?  123456789123456 
789123456789123 

SEGUNDO  NUMERO?  98765432109876 
5432109876543210 

EL  PRODUCTO  ES  1219326312467611 
63359244016569919219508757354050641 
167504830 


COMModo'Íworld 


Vietronic: 

El  64  director  de 


Otro  impacto  lo  produjo  Vietronic,  S. 
A.  de  Barcelona,  que  junto  con  Siel-Italia 
ha  desarrollado  un  programa  y  unos 
interfaces  que  permiten  conectar  al  C-64 
toda  una  gama  de  instrumentos  musicales 
electrónicos  interminables:  sintetizadores, 
órganos,  etc.  Todo  un  avance  para  nues¬ 
tros  64  que  los  melómanos  agradecerán. 

En  realidad  este  último  avance  se  ha 
hecho  posible  gracias  a  que  las  grandes 
casas  (Hammond,  Roland,  Korg,  Ya¬ 
maha,  etc.)  han  decidido  adoptar  un 
estándard  para  las  conexiones  entre  sus 
secuenciadores,  e  instrumentos,  permi¬ 
tiendo  una  gran  flexibilidad  en  la  elección 
de  instrumentos,  y  además  se  ha  realizado 
el  sueño  de  conectar  nuestro  C-64  contro¬ 
lándolo  todo.  Puedo  garantizar  que  el 
resultado  era  super-fabuloso  dentro  de  la 
sala  de  demostración,  donde  pudimos 
escuchar  al  maestro  de  música  llamado 
C-64,  ejecutando  perfectamente  toda  una 


orquesta 

serie  de  piezas  que  podrían  haber  dejado 
pasmados  a  más  de  uno  de  nuestros  gran¬ 
des  compositores  (Imaginad  las  obras  que 
podrían  haber  compuesto  si  hubieran 
despuesto  de  un  C-64  y  todos  estos  ins¬ 
trumentos  en  su  época).  También  han 


lanzado  otro  interface  para  el  Spectrum 
de  48K,  pero  con  bastante  más  limi¬ 
taciones... 

Las  señas  de  Vietronic  son: 

Bolivia,  239 
Barcelona-20 


PARA  LLEGAR  MAS  LEJOS... 
^KETRRMZKZ? 


/MSX 


MICROSOFT  BASIC^  FORTRAN  80  *  Microsoft  Logo  ★  COLECO  cartuchos 
CP/M  *  Cobol  80  ★  MACROENSAMBLADOR  Z80  *  Ensamblador  CP/M 


GOMMODORE  16 
LA  EMOCION  DE  EMPEZAR 

Iniciarse  en  el  mundo  de  los 
ordenadores  personales  con  un 
COMMODORE  16  es  sumar ,  a  la  emoción 
de  empezar,  la  emoción  del  futuro. 

Porque  es  un  ordenador  de 
fácil  manejo  y  programación,  pero  con 
prestaciones  que  sólo  se  encuentran  en 
ordenadores  de  costo  mucho  más  elevado. 

Porque  es  un  ordenador 
pequeño,  pero  con  la  mayor  cantidad  de 


software  y  periféricos,  que  multiplican  sus  Porque  es  el  ordenador  ideal 

posibilidades  futuras.  para  empezar  y  perfecto  para  seguir. 


PRINCIPALES  CARACTERISTICAS 

-I6K. 

-  40  COLUMNAS  x  25  LINEAS. 

-  COMANDOS  DE  ALTO  NIVEL 

-  121  COLORES. 

PARA  GESTION  DE  COLOR.  SONIDO 

-  GRAFICOS  EN  ALTA  RESOLUCION. 

Y  GRAFICOS  DE  AL  TA  RESOLUCION. 

-  2  GENERADORES  DE  TONO. 

-  TECLADO  PROFESIONAL. 

-  AMPLIA  GAMA  DE  PERIFERICOS. 

commodore  16 
LA  EMOCION  DEL  FUTURO 


commodore 

COMPUTER 


MICROELECTRONICA  Y  CONTROL 
d  Valencia,  49-53.  08015  Barcelona,  d  Princesa,  47,  3. 0  G.  28008  Madrid. 
UNICO  REPRESENTANTE  DE  COMMODORE  EN  ESPAÑA